b310-digital / b310-digital/teammapper
Add Lock / Unlock mode for selected nodes or subtrees
- Dominant language
- TypeScript
- Stars
- 496
- Forks
- 41
- Avg merge
- 2h 16m
- Merged PRs (30d)
- 11
Description
### Problem
When working on large collaborative mind maps, some nodes or branches may already be finalized.
However, users can still accidentally:
* Move nodes.
* Rename nodes.
* Delete nodes.
* Change colors or styling.
* Modify an existing branch while editing nearby nodes.
This is especially risky in collaborative maps, where multiple users may be editing at the same time.
### Proposed Solution
Add a **Lock / Unlock** action in the toolbar.
Users should be able to:
* Select one node and lock it.
* Select multiple nodes and lock them.
* Select a parent node and lock the entire subtree.
* Unlock nodes later when editing is needed.
### Suggested UX
Add a toolbar button:
```text
🔒 Lock / 🔓 Unlock
```
When a node is locked:
* It cannot be moved.
* It cannot be renamed.
* It cannot be deleted.
* Its style/colors cannot be changed.
* Its parent-child relationship cannot be changed.
Optional behavior:
* Locked nodes could still allow child nodes to be added, depending on project preference.
* Or fully lock the subtree including adding/removing children.
### Visual Indicator
Locked nodes should have a small lock icon or visual state, for example:
```text
🔒 John
```
or a small lock badge in the node corner.
### Benefits
* Prevents accidental changes.
* Makes collaboration safer.
* Protects finalized branches.
* Improves confidence when sharing edit links with many people.
* Very useful for large family trees, organization charts, and project maps.
Contributor guide
No contributing guide indexed for this repository
Research direction
No files, tests, or entry points are identified. Start by tracing how node selection, toolbar actions, editing, styling, deletion, and parent-child changes are implemented, then determine how lock state is stored and synchronized for collaboration. Done means selected nodes and subtrees can be locked and unlocked, blocked edits are consistently enforced, and the locked state is visibly indicated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100