Skip to content

Tree context menu: show in folder, rename, delete + shared IconButton - #180

Merged
SukuWc merged 6 commits into
mainfrom
SUKU-housekeeping
Sep 22, 2026
Merged

SukuWc merged 6 commits into
mainfrom
SUKU-housekeeping

Conversation

@SukuWc

@SukuWc SukuWc commented Sep 22, 2026

Copy link
Copy Markdown
Member

Changes

  • "Show in folder" context menu entry for profiles/presets
  • Migrated icon buttons and tooltips onto shared @intechstudio/grid-uikit components
  • Right-click a profile to select it
  • "Delete" context menu entry for profiles/presets
  • Inline rename for profiles/presets
  • "Rename virtual directory" context menu entry for folders
  • Fixed virtual directory delete/rename matching a raw substring instead of an exact path segment
  • Batched save-result toast messages (one per transaction instead of one per affected file)
  • Bumped @intechstudio/grid-uikit to latest

🤖 Generated with Claude Code

https://claude.ai/code/session_01619XN25FUTzqut4YbzZPQr

SukuWc and others added 5 commits September 16, 2026 15:06
Sends the local file's config over to grid-editor via postMessage, which
resolves the path and reveals it in Finder/Explorer via shell.showItemInFolder.
Disabled when the config has no local file (cloud-only).

Requires the showItemInFolder IPC handler added in grid-editor
(intechstudio/grid-editor#1621).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01619XN25FUTzqut4YbzZPQr
Bumps @intechstudio/grid-uikit to 1.20260916.1336 and switches every
ad-hoc `<button><SvgIcon/></button>` (UserLogin, EditorLayout,
ConfigCardDisplay, ConfigCardBrowser) onto the shared IconButton, and
every local tooltip action import onto grid-uikit's own (now-exported)
copy, deleting the duplicate lib/actions/tooltip.ts.

Along the way:
- Delete/Overwrite's flag-swapped "confirm"/"apply" button is replaced by
  IconButton's new tooltipButtons (Cancel/Confirm popup), with
  tooltipExtendedText showing "Delete/Overwrite '<name>'?" once the
  buttons are visible.
- The single sync-config button that swapped icon/tooltip/action based on
  state is replaced by three always-visible IconButtons (Create a copy /
  Download / Upload), each disabled unless it applies.
- The one-off "Copied to clipboard!" popup (linkFlag + fade transition)
  is replaced by a real sendLogMessage toast to grid-editor's logger.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01619XN25FUTzqut4YbzZPQr
Right-clicking a tree item now also selects it (just updates
selected_config, without the full "load into editor" side effects a left
click triggers), so the context menu always acts on the item under the
cursor.

Also adds a Delete entry next to "Show in folder", disabled for configs
the user can't edit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01619XN25FUTzqut4YbzZPQr
Bumps @intechstudio/grid-uikit to 1.20260922.800, which fixes contextTarget
never updating its captured options after mount (an unkeyed #each reusing
the same DOM element across renders kept opening context menus built from
stale data - most visibly, Rename showing the pre-rename name a second time).

Adds:
- "Rename" on the profile/preset context menu, editing the name inline via
  MoltenInput (mirrors grid-editor's FileManager.svelte inline-rename
  pattern). The editor stays open until the renamed value actually lands
  back in `configs` (saveConfig's promise only resolves once the write
  completes, not once the file-watcher reload reflects it back), avoiding
  a flash of the old name.
- "Rename virtual directory" on folder nodes, rewriting the shared
  virtualPath segment across every config that has it - same model as the
  existing Delete, including its scoping caveat (a folder is identified by
  title alone, not full path).
- Fixed handleDeleteVirtualDirectory matching on a raw substring
  (`virtualPath.includes(title)`) instead of an actual path segment.

Also fixes: renaming while nested inside melt-ui's tree-item <button>
(see TreeChild.svelte) hit two separate issues - stopPropagation was
needed to stop that button's own Space/Enter/arrow-key JS handling, and
separately Chromium applies a native "activate ancestor button" default
action for Space (since the input is invalidly nested inside a button)
that only preventDefault can stop; handleRenameKeydown now intercepts
Space specifically, preventing the native default and inserting the
character manually so typing still works normally.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01619XN25FUTzqut4YbzZPQr
ConfigManager.saveConfig (the atomic per-config save) no longer dispatches
sendLogMessage itself - it just resolves or throws. Every call site now
awaits it and reports its own result, so a batch operation (rename/delete
a virtual directory, which saves N affected configs) shows one message
for the whole transaction instead of one per file.

Single-item call sites (profile rename, description/name/path edits,
overwrite, new config, sync) keep one message each, now naming the
specific action instead of the old generic "saved"/"imported successfully"
wording. Two call sites that previously fired saveConfig without awaiting
it are now awaited, since an unawaited call could no longer surface its
error now that saveConfig can throw.

Also bumps @intechstudio/grid-uikit to 1.20260922.1223.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01619XN25FUTzqut4YbzZPQr
@github-actions

github-actions Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit 383465e):

https://profile-cloud-dev--pr180-suku-housekeeping-4gy61q3t.web.app

(expires Thu, 22 Oct 2026 12:49:05 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 2a004f867edf1347070dd9beedb18755187a6d4e

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01619XN25FUTzqut4YbzZPQr
@SukuWc
SukuWc merged commit 9ff489b into main Sep 22, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant