b310-digital / b310-digital/teammapper

Add Lock / Unlock mode for selected nodes or subtrees

Open
#1,334 2 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.