diff --git a/e2e-tests/whiteboards.spec.ts b/e2e-tests/whiteboards.spec.ts index 5f498c2c1c4..eedc70d27e2 100644 --- a/e2e-tests/whiteboards.spec.ts +++ b/e2e-tests/whiteboards.spec.ts @@ -80,18 +80,11 @@ test('set whiteboard title', async ({ page }) => { ) }) -test('select rectangle tool', async ({ page }) => { - await page.keyboard.press('7') - await expect( - page.locator('.tl-geometry-tools-pane-anchor [title*="Rectangle"]') - ).toHaveAttribute('data-selected', 'true') -}) - test('draw a rectangle', async ({ page }) => { const canvas = await page.waitForSelector('.logseq-tldraw') const bounds = (await canvas.boundingBox())! - await page.keyboard.press('7') + await page.keyboard.press('r') await page.mouse.move(bounds.x + 5, bounds.y + 5) await page.mouse.down() diff --git a/tldraw/apps/tldraw-logseq/package.json b/tldraw/apps/tldraw-logseq/package.json index 92777154884..a7d358b3f61 100644 --- a/tldraw/apps/tldraw-logseq/package.json +++ b/tldraw/apps/tldraw-logseq/package.json @@ -19,6 +19,7 @@ "@radix-ui/react-switch": "^1.0.1", "@radix-ui/react-toggle": "^1.0.1", "@radix-ui/react-toggle-group": "^1.0.1", + "@radix-ui/react-tooltip": "^1.0.2", "@tldraw/core": "2.0.0-alpha.1", "@tldraw/react": "2.0.0-alpha.1", "@tldraw/vec": "2.0.0-alpha.1", diff --git a/tldraw/apps/tldraw-logseq/src/components/ActionBar/ActionBar.tsx b/tldraw/apps/tldraw-logseq/src/components/ActionBar/ActionBar.tsx index 4c0b74ead5c..d997050492d 100644 --- a/tldraw/apps/tldraw-logseq/src/components/ActionBar/ActionBar.tsx +++ b/tldraw/apps/tldraw-logseq/src/components/ActionBar/ActionBar.tsx @@ -31,26 +31,19 @@ export const ActionBar = observer(function ActionBar(): JSX.Element { return (
- - - - -
- - diff --git a/tldraw/apps/tldraw-logseq/src/components/Button/Button.tsx b/tldraw/apps/tldraw-logseq/src/components/Button/Button.tsx index 94b57740e32..e6becce8c28 100644 --- a/tldraw/apps/tldraw-logseq/src/components/Button/Button.tsx +++ b/tldraw/apps/tldraw-logseq/src/components/Button/Button.tsx @@ -1,7 +1,15 @@ +import { Tooltip } from '../Tooltip' +import type { Side } from '@radix-ui/react-popper' export interface ButtonProps extends React.ButtonHTMLAttributes { children: React.ReactNode + tooltip?: React.ReactNode + tooltipSide?: Side } -export function Button({ className, ...rest }: ButtonProps) { - return { value={`${shape.props.url}`} onChange={handleChange} /> - @@ -275,7 +276,7 @@ const YoutubeLinkAction = observer(() => { onChange={handleChange} />
{app.selectedShapes?.size === 1 && ( - runAndTransition(() => app.paste(undefined, true))} - > - Paste as link -
- - {MOD_KEY} V - -
-
+ runAndTransition(() => app.paste(undefined, true))} + > + Paste as link +
+ + {MOD_KEY} V + +
+
)} - - geo.id === activeGeomId)!} /> - geo.id === app.selectedTool.id)} - className="tl-popover-indicator" - name="chevron-down-left" - /> + +
+ geo.id === activeGeomId)!} /> + geo.id === app.selectedTool.id)} + className="tl-popover-indicator" + name="chevron-down-left" + /> +
diff --git a/tldraw/apps/tldraw-logseq/src/components/PrimaryTools/PrimaryTools.tsx b/tldraw/apps/tldraw-logseq/src/components/PrimaryTools/PrimaryTools.tsx index c751c4c6173..3afed3f0c8e 100644 --- a/tldraw/apps/tldraw-logseq/src/components/PrimaryTools/PrimaryTools.tsx +++ b/tldraw/apps/tldraw-logseq/src/components/PrimaryTools/PrimaryTools.tsx @@ -16,25 +16,26 @@ export const PrimaryTools = observer(function PrimaryTools() { return (
- + + - - - - - + + + + + + - +
) diff --git a/tldraw/apps/tldraw-logseq/src/components/ToolButton/ToolButton.tsx b/tldraw/apps/tldraw-logseq/src/components/ToolButton/ToolButton.tsx index 965164fdf9b..21185e15681 100644 --- a/tldraw/apps/tldraw-logseq/src/components/ToolButton/ToolButton.tsx +++ b/tldraw/apps/tldraw-logseq/src/components/ToolButton/ToolButton.tsx @@ -8,9 +8,10 @@ import { TablerIcon } from '../icons' export interface ToolButtonProps extends React.ButtonHTMLAttributes { id: string icon: string | React.ReactNode + tooltip: string } -export const ToolButton = observer(({ id, icon, title, ...props }: ToolButtonProps) => { +export const ToolButton = observer(({ id, icon, tooltip, ...props }: ToolButtonProps) => { const app = useApp() const handleToolClick = React.useCallback( @@ -24,13 +25,26 @@ export const ToolButton = observer(({ id, icon, title, ...props }: ToolButtonPro // Tool must exist const Tool = [...app.Tools, TLSelectTool, TLMoveTool]?.find(T => T.id === id) - const shortcut = ((Tool as any)['shortcut'] as string[])?.join(', ').toUpperCase() + const shortcuts = (Tool as any)['shortcut'] + + const tooltipContent = shortcuts ? ( + <> + {tooltip} + + {shortcuts + .map((shortcut: string, idx: number) => {shortcut.toUpperCase()}) + .reduce((prev: React.ReactNode, curr: React.ReactNode) => [prev, ' | ', curr])} + + + ) : ( + { tooltip } + ) - const titleWithShortcut = shortcut ? `${title} - ${shortcut}` : title return (