From adc4617b4e11c7b44c58e515de3fd4d0e92d9daf Mon Sep 17 00:00:00 2001 From: Mayne Date: Tue, 13 Aug 2024 16:39:06 +0800 Subject: [PATCH] Fix/y24 w33 (#160) * chore: update the ai sdk version * chore: update Node.js and pnpm version requirements * fix(grid): disable search functionality and refactor keyboard shortcuts * fix(doc): drag and drop not working as expected * fix(doc): improve useSelection hook * fix(table): field display fixes * fix(doc-list): style * fix(doc): MentionNode render style --- .npmrc | 1 + components/doc/hooks/useSelection.tsx | 12 +- .../nodes/MentionNode/MentionComponent.tsx | 33 ++-- .../plugins/DraggableBlockPlugin/index.tsx | 10 +- components/keyboard-shortcuts/const.ts | 3 +- components/keyboard-shortcuts/index.tsx | 32 +-- .../keyboard-shortcuts/shortcut-table.tsx | 8 +- components/table/views/doc-list/index.tsx | 2 +- components/table/views/grid/index.tsx | 2 +- package.json | 8 +- pnpm-lock.yaml | 183 ++++++++++++------ worker/web-worker/meta-table/column.ts | 2 +- 12 files changed, 197 insertions(+), 99 deletions(-) create mode 100644 .npmrc diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..b6f27f13 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/components/doc/hooks/useSelection.tsx b/components/doc/hooks/useSelection.tsx index 3944b331..b2206761 100644 --- a/components/doc/hooks/useSelection.tsx +++ b/components/doc/hooks/useSelection.tsx @@ -140,6 +140,8 @@ export function useMouseSelection( }) const boxes = getSelectionItems() + const newSelectedKeySet = new Set() + Array.from(boxes ?? []).forEach((box) => { const rect = box.getBoundingClientRect() const boxLeft = rect.left + window.scrollX @@ -157,14 +159,18 @@ export function useMouseSelection( top + height >= boxTop && boxBottom >= top) if (isIntersect) { - ;(box as HTMLElement).style.backgroundColor = "rgb(173 216 230 / 27%)" + ;(box as HTMLElement).style.backgroundColor = + "rgba(173, 216, 230, 0.5)" const key = (box as HTMLElement).getAttribute("data-key") if (key) { - selectedKeySet.add(key) - setSelectedKeySet(new Set(selectedKeySet)) + newSelectedKeySet.add(key) } + } else { + ;(box as HTMLElement).style.backgroundColor = "" } }) + + setSelectedKeySet(newSelectedKeySet) } function handleMouseUp(e: MouseEvent) { diff --git a/components/doc/nodes/MentionNode/MentionComponent.tsx b/components/doc/nodes/MentionNode/MentionComponent.tsx index 2076c254..752bd5d9 100644 --- a/components/doc/nodes/MentionNode/MentionComponent.tsx +++ b/components/doc/nodes/MentionNode/MentionComponent.tsx @@ -49,8 +49,8 @@ export const MentionComponent = (props: { id: string; title?: string }) => { { id={id} onClick={onClick} > - {node && node.icon ? ( - - ) : ( - - )} -

+ + {node && node.icon ? ( + + ) : ( + + )} + + {node ? node.name || "Untitled" : props.title || "loading"} -

+
(null) const targetLineRef = useRef(null) const isDraggingBlockRef = useRef(false) @@ -369,6 +370,7 @@ function useDraggableBlockMenu( return } setDragImage(dataTransfer, draggableBlockElem) + console.log("onDragStart setDragImage", draggableBlockElem) let nodeKey = "" editor.update(() => { const node = $getNearestNodeFromDOMNode(draggableBlockElem) diff --git a/components/keyboard-shortcuts/const.ts b/components/keyboard-shortcuts/const.ts index 1054a10c..0928dff6 100644 --- a/components/keyboard-shortcuts/const.ts +++ b/components/keyboard-shortcuts/const.ts @@ -71,8 +71,9 @@ export const TableKeyboardShortcuts = [ }, { key: "Ctrl/Cmd + F", - description: "Opens the search interface.", + description: "Opens the search interface.(disabled for now)", flag: "search", + disabled: true, }, { key: "Ctrl/Cmd + Home/End", diff --git a/components/keyboard-shortcuts/index.tsx b/components/keyboard-shortcuts/index.tsx index a3b9cd5d..4b51d622 100644 --- a/components/keyboard-shortcuts/index.tsx +++ b/components/keyboard-shortcuts/index.tsx @@ -19,21 +19,25 @@ export function KeyboardShortCuts() {
- -
- - + +
+
+ + +
+
+ +
-
) diff --git a/components/keyboard-shortcuts/shortcut-table.tsx b/components/keyboard-shortcuts/shortcut-table.tsx index bc6e5fe2..3e062f19 100644 --- a/components/keyboard-shortcuts/shortcut-table.tsx +++ b/components/keyboard-shortcuts/shortcut-table.tsx @@ -9,7 +9,7 @@ import { } from "@/components/ui/table" interface ShortcutTableProps { - shortcuts: { key: string; description: string }[] + shortcuts: { key: string; description: string; disabled?: boolean }[] title?: string } export const ShortcutTable = ({ shortcuts, title }: ShortcutTableProps) => { @@ -38,7 +38,11 @@ export const ShortcutTable = ({ shortcuts, title }: ShortcutTableProps) => { ))}
- + {shortcut.description} diff --git a/components/table/views/doc-list/index.tsx b/components/table/views/doc-list/index.tsx index 44f2058e..2fc340dc 100644 --- a/components/table/views/doc-list/index.tsx +++ b/components/table/views/doc-list/index.tsx @@ -63,7 +63,7 @@ export function DocListView(props: IDocListViewProps) { return (
diff --git a/components/table/views/grid/index.tsx b/components/table/views/grid/index.tsx index d8597e21..8f73e2ec 100644 --- a/components/table/views/grid/index.tsx +++ b/components/table/views/grid/index.tsx @@ -327,7 +327,7 @@ export default function GridView(props: IGridProps) { onDrop={onDrop} onDragOverCell={onDragOverCell} highlightRegions={highlightRegions} - showSearch={showSearch} + // showSearch={showSearch} gridSelection={selection} onItemHovered={onItemHovered} // getRowThemeOverride={getRowThemeOverride} diff --git a/package.json b/package.json index aeeb71cd..d0efb155 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "test": "vitest" }, "dependencies": { - "@ai-sdk/openai": "^0.0.13", + "@ai-sdk/openai": "^0.0.45", "@aws-crypto/sha256-browser": "^5.2.0", "@eidos.space/types": "workspace:*", "@emoji-mart/data": "^1.1.2", @@ -82,7 +82,7 @@ "@uiw/react-heat-map": "^2.2.1", "@xenova/transformers": "^2.17.1", "ahooks": "^3.7.8", - "ai": "^3.1.9", + "ai": "^3.3.6", "aws-sdk": "^2.1526.0", "aws4fetch": "^1.0.17", "bufferutil": "^4.0.7", @@ -196,6 +196,10 @@ "vitest": "^2.0.3", "workbox-window": "^7.0.0" }, + "engines": { + "node": ">=18.0.0", + "pnpm": ">=8.5.0" + }, "pnpm": { "peerDependencyRules": { "ignoreMissing": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7c58248a..a0149f00 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,8 +5,8 @@ importers: .: dependencies: '@ai-sdk/openai': - specifier: ^0.0.13 - version: 0.0.13(zod@3.21.4) + specifier: ^0.0.45 + version: 0.0.45(zod@3.21.4) '@aws-crypto/sha256-browser': specifier: ^5.2.0 version: 5.2.0 @@ -185,8 +185,8 @@ importers: specifier: ^3.7.8 version: 3.7.8(react@18.2.0) ai: - specifier: ^3.1.9 - version: 3.1.9(openai@4.16.1)(react@18.2.0)(zod@3.21.4) + specifier: ^3.3.6 + version: 3.3.6(openai@4.16.1)(react@18.2.0)(zod@3.21.4) aws-sdk: specifier: ^2.1526.0 version: 2.1526.0 @@ -574,22 +574,19 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@ai-sdk/openai@0.0.13(zod@3.21.4): - resolution: {integrity: sha512-V5Jjem+83sVxFNzhNUV25c7uXC33VKIhoo1qN098EMqTriEp9oNCRAaNXf95eVFbFs2bDLVZtkoACv++Go0BUA==} + /@ai-sdk/openai@0.0.45(zod@3.21.4): + resolution: {integrity: sha512-+ywipfosdChbbAYxZDtqcTCUWiujNodML8AwMEBJJuIcffOpH9NjNYNFxctC7qf3xlKVcTezaIuHVYDFXVsa+Q==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 - peerDependenciesMeta: - zod: - optional: true dependencies: - '@ai-sdk/provider': 0.0.5 - '@ai-sdk/provider-utils': 0.0.8(zod@3.21.4) + '@ai-sdk/provider': 0.0.18 + '@ai-sdk/provider-utils': 1.0.10(zod@3.21.4) zod: 3.21.4 dev: false - /@ai-sdk/provider-utils@0.0.8(zod@3.21.4): - resolution: {integrity: sha512-J/ZNvFhORd3gCeK3jFvNrxp1Dnvy6PvPq21RJ+OsIEjsoHeKQaHALCWG0aJunXDuzd+Mck/lCg7LqA0qmIbHIg==} + /@ai-sdk/provider-utils@1.0.10(zod@3.21.4): + resolution: {integrity: sha512-xciXF2PorLQMNdhYe+n9CafVkXZANHURsME85RXjtAoZSs631l2t8Blqwz2C/pHUb9bxLdMRRuIEB4PnHLnHvQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -597,18 +594,101 @@ packages: zod: optional: true dependencies: - '@ai-sdk/provider': 0.0.5 + '@ai-sdk/provider': 0.0.18 eventsource-parser: 1.1.2 nanoid: 3.3.6 secure-json-parse: 2.7.0 zod: 3.21.4 dev: false - /@ai-sdk/provider@0.0.5: - resolution: {integrity: sha512-TZDldBZ5clAsNwJ2PSeo/b1uILj9a2lvi0rnOj2RCNZDgaVqFRVIAnKyeHusCRv2lzhPIw03B3fiGI6VoLzOAA==} + /@ai-sdk/provider@0.0.18: + resolution: {integrity: sha512-LF4aUAKDTKIHa2e7ozwRJDMhUC9cs7t224sUilG1HfyFWyyh+01oPZwMob/hj111SozZkvXIukN0BIa+sXS0mw==} + engines: {node: '>=18'} + dependencies: + json-schema: 0.4.0 + dev: false + + /@ai-sdk/react@0.0.42(react@18.2.0)(zod@3.21.4): + resolution: {integrity: sha512-oiwXKLc5n7SwaTZWldMrpyJEWTgLh35NXuxQIGDGVHTIryxxMk9lgOQ+vQ8uri3WGMzGQQGRfwh8MTijJ8cN2A==} + engines: {node: '>=18'} + peerDependencies: + react: ^18 || ^19 + zod: ^3.0.0 + peerDependenciesMeta: + react: + optional: true + zod: + optional: true + dependencies: + '@ai-sdk/provider-utils': 1.0.10(zod@3.21.4) + '@ai-sdk/ui-utils': 0.0.30(zod@3.21.4) + react: 18.2.0 + swr: 2.2.5(react@18.2.0) + zod: 3.21.4 + dev: false + + /@ai-sdk/solid@0.0.33(zod@3.21.4): + resolution: {integrity: sha512-6AV4g6IrQ7bPcfQgwOjNMT50W2lljk/sgzJ3qx+Bt/lobvhA7khyW1RVYTnxx3OBdf4/qB1D2BAAbUrrm/na8A==} engines: {node: '>=18'} + peerDependencies: + solid-js: ^1.7.7 + peerDependenciesMeta: + solid-js: + optional: true + dependencies: + '@ai-sdk/provider-utils': 1.0.10(zod@3.21.4) + '@ai-sdk/ui-utils': 0.0.30(zod@3.21.4) + transitivePeerDependencies: + - zod + dev: false + + /@ai-sdk/svelte@0.0.35(zod@3.21.4): + resolution: {integrity: sha512-vbDmvcu2MRZvvxoOtCUH8ydKSaugaQkhiBtZRp/U1YvSIuzR7xUkYSf0EQ173kWBWsaoPO9PFava0WxF7k1q4g==} + engines: {node: '>=18'} + peerDependencies: + svelte: ^3.0.0 || ^4.0.0 + peerDependenciesMeta: + svelte: + optional: true + dependencies: + '@ai-sdk/provider-utils': 1.0.10(zod@3.21.4) + '@ai-sdk/ui-utils': 0.0.30(zod@3.21.4) + sswr: 2.1.0 + transitivePeerDependencies: + - zod + dev: false + + /@ai-sdk/ui-utils@0.0.30(zod@3.21.4): + resolution: {integrity: sha512-ifmYSQtSVdeY1XlOFirAdbgWVnSg5hYPhG8bEiNI9TvR1HFdMN/zZhxscjLyKXXAelf/ACYvUjwNQmCnWSurZQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true dependencies: + '@ai-sdk/provider': 0.0.18 + '@ai-sdk/provider-utils': 1.0.10(zod@3.21.4) json-schema: 0.4.0 + secure-json-parse: 2.7.0 + zod: 3.21.4 + zod-to-json-schema: 3.22.5(zod@3.21.4) + dev: false + + /@ai-sdk/vue@0.0.34(zod@3.21.4): + resolution: {integrity: sha512-Nbht63i4NJrau5Yrf6dH6paH2mj/5CSmHopjA0IRHdOTvh3lKe382oZP2hLnN/xa575r25as67l7P/j/iq8ULQ==} + engines: {node: '>=18'} + peerDependencies: + vue: ^3.3.4 + peerDependenciesMeta: + vue: + optional: true + dependencies: + '@ai-sdk/provider-utils': 1.0.10(zod@3.21.4) + '@ai-sdk/ui-utils': 0.0.30(zod@3.21.4) + swrv: 1.0.4 + transitivePeerDependencies: + - zod dev: false /@alloc/quick-lru@5.2.0: @@ -3805,6 +3885,11 @@ packages: '@octokit/openapi-types': 19.1.0 dev: false + /@opentelemetry/api@1.9.0: + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + dev: false + /@protobufjs/aspromise@1.1.2: resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} dev: false @@ -6744,32 +6829,35 @@ packages: tslib: 2.6.0 dev: false - /ai@3.1.9(openai@4.16.1)(react@18.2.0)(zod@3.21.4): - resolution: {integrity: sha512-H52qz9bl1TJaodCKawmblXdGO6Fahdb4vi9nuInZPcvihlCtUvt0vNsclVKs93IdwVuc0y+jq68xHp0evC47iQ==} + /ai@3.3.6(openai@4.16.1)(react@18.2.0)(zod@3.21.4): + resolution: {integrity: sha512-XrbjYyugNF0SlTEVAO8B7tlW6iW47+DYk1hkyGj0vwp93J0F19bdrtN6NbFJOzSHj/R4FGvGk0IPQz5A3Eq1IQ==} engines: {node: '>=18'} peerDependencies: openai: ^4.42.0 - react: ^18.2.0 - solid-js: ^1.7.7 + react: ^18 || ^19 + sswr: ^2.1.0 svelte: ^3.0.0 || ^4.0.0 - vue: ^3.3.4 zod: ^3.0.0 peerDependenciesMeta: openai: optional: true react: optional: true - solid-js: + sswr: optional: true svelte: optional: true - vue: - optional: true zod: optional: true dependencies: - '@ai-sdk/provider': 0.0.5 - '@ai-sdk/provider-utils': 0.0.8(zod@3.21.4) + '@ai-sdk/provider': 0.0.18 + '@ai-sdk/provider-utils': 1.0.10(zod@3.21.4) + '@ai-sdk/react': 0.0.42(react@18.2.0)(zod@3.21.4) + '@ai-sdk/solid': 0.0.33(zod@3.21.4) + '@ai-sdk/svelte': 0.0.35(zod@3.21.4) + '@ai-sdk/ui-utils': 0.0.30(zod@3.21.4) + '@ai-sdk/vue': 0.0.34(zod@3.21.4) + '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 jsondiffpatch: 0.6.0 @@ -6777,13 +6865,11 @@ packages: openai: 4.16.1 react: 18.2.0 secure-json-parse: 2.7.0 - solid-swr-store: 0.10.7(swr-store@0.10.6) - sswr: 2.0.0 - swr: 2.2.0(react@18.2.0) - swr-store: 0.10.6 - swrv: 1.0.4 zod: 3.21.4 zod-to-json-schema: 3.22.5(zod@3.21.4) + transitivePeerDependencies: + - solid-js + - vue dev: false /ajv@6.12.6: @@ -7354,6 +7440,10 @@ packages: resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} dev: false + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -11952,19 +12042,6 @@ packages: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} dev: true - /solid-swr-store@0.10.7(swr-store@0.10.6): - resolution: {integrity: sha512-A6d68aJmRP471aWqKKPE2tpgOiR5fH4qXQNfKIec+Vap+MGQm3tvXlT8n0I8UgJSlNAsSAUuw2VTviH2h3Vv5g==} - engines: {node: '>=10'} - peerDependencies: - solid-js: ^1.2 - swr-store: ^0.10 - peerDependenciesMeta: - solid-js: - optional: true - dependencies: - swr-store: 0.10.6 - dev: false - /sort-by@1.2.0: resolution: {integrity: sha512-aRyW65r3xMnf4nxJRluCg0H/woJpksU1dQxRtXYzau30sNBOmf5HACpDd9MZDhKh7ALQ5FgSOfMPwZEtUmMqcg==} dependencies: @@ -12009,10 +12086,10 @@ packages: deprecated: Please use @jridgewell/sourcemap-codec instead dev: true - /sswr@2.0.0: - resolution: {integrity: sha512-mV0kkeBHcjcb0M5NqKtKVg/uTIYNlIIniyDfSGrSfxpEdM9C365jK0z55pl9K0xAkNTJi2OAOVFQpgMPUk+V0w==} + /sswr@2.1.0: + resolution: {integrity: sha512-Cqc355SYlTAaUt8iDPaC/4DPPXK925PePLMxyBKuWd5kKc5mwsG3nT9+Mq2tyguL5s7b4Jg+IRMpTRsNTAfpSQ==} peerDependencies: - svelte: ^4.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 peerDependenciesMeta: svelte: optional: true @@ -12214,18 +12291,12 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /swr-store@0.10.6: - resolution: {integrity: sha512-xPjB1hARSiRaNNlUQvWSVrG5SirCjk2TmaUyzzvk69SZQan9hCJqw/5rG9iL7xElHU784GxRPISClq4488/XVw==} - engines: {node: '>=10'} - dependencies: - dequal: 2.0.3 - dev: false - - /swr@2.2.0(react@18.2.0): - resolution: {integrity: sha512-AjqHOv2lAhkuUdIiBu9xbuettzAzWXmCEcLONNKJRba87WAefz8Ca9d6ds/SzrPc235n1IxWYdhJ2zF3MNUaoQ==} + /swr@2.2.5(react@18.2.0): + resolution: {integrity: sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==} peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 dependencies: + client-only: 0.0.1 react: 18.2.0 use-sync-external-store: 1.2.0(react@18.2.0) dev: false diff --git a/worker/web-worker/meta-table/column.ts b/worker/web-worker/meta-table/column.ts index bfb0bffc..ea8cb417 100644 --- a/worker/web-worker/meta-table/column.ts +++ b/worker/web-worker/meta-table/column.ts @@ -283,7 +283,7 @@ export class ColumnTable extends BaseTableImpl implements BaseTable { async list(q: { table_name: string }): Promise { const res = await super.list(q) - return res.filter((col) => !col.name.startsWith("_")) + return res.filter((col) => !col.table_column_name.startsWith("_")) } static isColumnTypeChanged(oldType: FieldType, newType: FieldType) {