From 7b044c60501d272dfd1b70fe69d4f7c02a2ec51b Mon Sep 17 00:00:00 2001 From: Chris Kruining Date: Wed, 8 Jan 2025 10:20:50 +0100 Subject: [PATCH] quick and dirty key copy feature --- bun.lockb | Bin 361064 -> 361504 bytes package.json | 1 + src/components/table/table.module.css | 7 +----- src/features/command/command.ts | 2 +- src/features/command/context.tsx | 2 +- src/features/command/contextMenu.tsx | 32 +++++++++++++------------- src/features/file/grid.tsx | 6 ++--- src/features/i18n/context.tsx | 2 +- src/i18n/en-GB.json | 3 ++- src/i18n/nl-NL.json | 5 ++-- src/routes/(editor)/edit.tsx | 15 +++++++++++- 11 files changed, 43 insertions(+), 32 deletions(-) diff --git a/bun.lockb b/bun.lockb index 9652a01f2338a9550368b771d72d1333f279a798..f6a66cd2f06c1345ca4c1b13adfd408ced7a04da 100644 GIT binary patch delta 58681 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 delta 57984 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 summary { - inset-inline-start: 2em; - grid-column: 2; - } } } diff --git a/src/features/command/command.ts b/src/features/command/command.ts index d7197ae..99805be 100644 --- a/src/features/command/command.ts +++ b/src/features/command/command.ts @@ -9,7 +9,7 @@ export enum Modifier { } export interface CommandType any = (...args: any[]) => any> { - (...args: Parameters): Promise>; + (...args: Parameters): (ReturnType extends Promise ? ReturnType : Promise>); label: DictionaryKey; shortcut?: { key: string; diff --git a/src/features/command/context.tsx b/src/features/command/context.tsx index 56cca71..8d0f997 100644 --- a/src/features/command/context.tsx +++ b/src/features/command/context.tsx @@ -106,7 +106,7 @@ const Add: Component<{ command: CommandType, commands: undefined } | { commands: return undefined; }; -const Context = any = any>(props: ParentProps<{ for: CommandType, with: Parameters }>): JSX.Element => { +const Context = any = (...args: any[]) => any>(props: ParentProps<{ for: CommandType, with: Parameters }>): JSX.Element => { const resolved = children(() => props.children); const context = useCommands(); const args = createMemo(() => props.with); diff --git a/src/features/command/contextMenu.tsx b/src/features/command/contextMenu.tsx index deea323..c2ea84f 100644 --- a/src/features/command/contextMenu.tsx +++ b/src/features/command/contextMenu.tsx @@ -1,27 +1,28 @@ import { Accessor, Component, createContext, createEffect, createMemo, createSignal, For, JSX, ParentComponent, splitProps, useContext } from "solid-js"; import { CommandType } from "./command"; import css from "./contextMenu.module.css"; +import { useCommands } from "./context"; interface ContextMenuType { readonly commands: Accessor; - readonly target: Accessor; - show(element: HTMLElement): void; + readonly event: Accessor; + show(event: Event): void; hide(): void; } const ContextMenu = createContext() const Root: ParentComponent<{ commands: CommandType[] }> = (props) => { - const [target, setTarget] = createSignal(); + const [event, setEvent] = createSignal(); - const context = { + const context: ContextMenuType = { commands: createMemo(() => props.commands), - target, - show(element: HTMLElement) { - setTarget(element); + event, + show(event) { + setEvent(event); }, hide() { - setTarget(undefined); + setEvent(undefined); }, }; @@ -32,17 +33,18 @@ const Root: ParentComponent<{ commands: CommandType[] }> = (props) => { const Menu: Component<{ children: (command: CommandType) => JSX.Element }> = (props) => { const context = useContext(ContextMenu)!; + const commandContext = useCommands(); const [root, setRoot] = createSignal(); createEffect(() => { - const target = context.target(); + const event = context.event(); const menu = root(); if (!menu) { return; } - if (target) { + if (event) { menu.showPopover(); } else { @@ -57,12 +59,11 @@ const Menu: Component<{ children: (command: CommandType) => JSX.Element }> = (pr }; const onCommand = (command: CommandType) => (e: PointerEvent) => { + commandContext?.execute(command, context.event()!); context.hide(); - - command(); }; - return

+ return { command =>
  • {props.children(command)}
  • }
    @@ -73,12 +74,11 @@ const Handle: ParentComponent> = (props) => { const [local, rest] = splitProps(props, ['children']); const context = useContext(ContextMenu)!; - const [handle, setHandle] = createSignal(); - return { + return { e.preventDefault(); - context.show(handle()!); + context.show(e); return false; }}>{local.children}; diff --git a/src/features/file/grid.tsx b/src/features/file/grid.tsx index 368cf36..22c7c26 100644 --- a/src/features/file/grid.tsx +++ b/src/features/file/grid.tsx @@ -1,4 +1,4 @@ -import { Accessor, Component, createEffect, createMemo, createSignal } from "solid-js"; +import { Accessor, Component, createEffect, createMemo, createSignal, JSX } from "solid-js"; import { debounce, decode, Mutation } from "~/utilities"; import { Column, GridApi as GridCompApi, Grid as GridComp } from "~/components/grid"; import { createDataSet, DataSetNode, DataSetRowNode } from "~/components/table"; @@ -29,7 +29,7 @@ const groupBy = (rows: DataSetRowNode[]) => { return group(rows.map(r => ({ ...r, _key: r.value.key }))) as any; } -export function Grid(props: { class?: string, rows: Entry[], locales: string[], api?: (api: GridApi) => any }) { +export function Grid(props: { class?: string, rows: Entry[], locales: string[], api?: (api: GridApi) => any, children?: (key: string) => JSX.Element }) { const { t } = useI18n(); const rows = createMemo(() => createDataSet(props.rows, { group: { by: 'key', with: groupBy } })); @@ -38,7 +38,7 @@ export function Grid(props: { class?: string, rows: Entry[], locales: string[], { id: 'key', label: t('feature.file.grid.key'), - renderer: ({ value }) => value.split('.').at(-1), + renderer: ({ value }) => props.children?.(value) ?? value.split('.').at(-1), }, ...locales().map>(lang => ({ id: lang, diff --git a/src/features/i18n/context.tsx b/src/features/i18n/context.tsx index 5780290..1b7bcfb 100644 --- a/src/features/i18n/context.tsx +++ b/src/features/i18n/context.tsx @@ -1,8 +1,8 @@ import { Accessor, createContext, createMemo, createSignal, ParentComponent, Setter, useContext } from 'solid-js'; import { translator, flatten, Translator, Flatten } from "@solid-primitives/i18n"; +import { makePersisted } from '@solid-primitives/storage'; import en from '~/i18n/en-GB.json'; import nl from '~/i18n/nl-NL.json'; -import { makePersisted } from '@solid-primitives/storage'; type RawDictionary = typeof en; export type Dictionary = Flatten; diff --git a/src/i18n/en-GB.json b/src/i18n/en-GB.json index 3d4edee..a76a19d 100644 --- a/src/i18n/en-GB.json +++ b/src/i18n/en-GB.json @@ -28,7 +28,8 @@ "clearSelection": "Clear selection", "insertKey": "Insert new key", "insertLanguage": "Insert new language", - "delete": "Delete selected items" + "delete": "Delete selected items", + "copyKey": "Copy key" }, "prompt": { "newKey": { diff --git a/src/i18n/nl-NL.json b/src/i18n/nl-NL.json index de06ee8..faab271 100644 --- a/src/i18n/nl-NL.json +++ b/src/i18n/nl-NL.json @@ -28,7 +28,8 @@ "clearSelection": "Selectie leeg maken", "insertKey": "Voeg nieuwe sleutel toe", "insertLanguage": "Voeg nieuwe taal toe", - "delete": "Verwijder geselecteerde items" + "delete": "Verwijder geselecteerde items", + "copyKey": "Kopieer sleutel" }, "prompt": { "newKey": { @@ -50,4 +51,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/routes/(editor)/edit.tsx b/src/routes/(editor)/edit.tsx index 184e195..78fac26 100644 --- a/src/routes/(editor)/edit.tsx +++ b/src/routes/(editor)/edit.tsx @@ -12,6 +12,7 @@ import { Prompt, PromptApi } from "~/components/prompt"; import EditBlankImage from '~/assets/edit-blank.svg' import { useI18n } from "~/features/i18n"; import { makePersisted } from "@solid-primitives/storage"; +import { writeClipboard } from "@solid-primitives/clipboard"; import css from "./edit.module.css"; const isInstalledPWA = !isServer && window.matchMedia('(display-mode: standalone)').matches; @@ -449,7 +450,19 @@ const Content: Component<{ directory: FileSystemDirectoryHandle, api?: Setter<(G })(); }); - return ; + const copyKey = createCommand('page.edit.command.copyKey', (key: string) => writeClipboard(key)); + + return { + key => { + return + { + command => + } + + {key.split('.').at(-1)!} + ; + } + }; }; const Blank: Component<{ open: CommandType }> = (props) => {