From 9d68778cfae518259e254cf94be1f527fb983da5 Mon Sep 17 00:00:00 2001 From: Catherine Lee <55311782+c298lee@users.noreply.github.com> Date: Tue, 21 Jan 2025 01:56:32 -0500 Subject: [PATCH 1/6] improve pen tool --- .../src/screenshot/components/PenIcon.tsx | 44 +++++++++++++++++++ .../components/ScreenshotEditor.tsx | 19 ++++---- .../components/ScreenshotInput.css.ts | 13 +++++- 3 files changed, 67 insertions(+), 9 deletions(-) create mode 100644 packages/feedback/src/screenshot/components/PenIcon.tsx diff --git a/packages/feedback/src/screenshot/components/PenIcon.tsx b/packages/feedback/src/screenshot/components/PenIcon.tsx new file mode 100644 index 000000000000..b0cda1631c07 --- /dev/null +++ b/packages/feedback/src/screenshot/components/PenIcon.tsx @@ -0,0 +1,44 @@ +import type { VNode, h as hType } from 'preact'; + +interface FactoryParams { + h: typeof hType; +} + +export default function PenIconFactory({ + h, // eslint-disable-line @typescript-eslint/no-unused-vars +}: FactoryParams) { + return function PenIcon({ isAnnotating, onClick }: { isAnnotating: boolean; onClick: (e: Event) => void }): VNode { + return ( + + ); + }; +} diff --git a/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx b/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx index 7cd3aa5f1747..3ac701e009d7 100644 --- a/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx +++ b/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx @@ -6,6 +6,7 @@ import { h } from 'preact'; // eslint-disable-line @typescript-eslint/no-unused- import type * as Hooks from 'preact/hooks'; import { DOCUMENT, WINDOW } from '../../constants'; import CropCornerFactory from './CropCorner'; +import PenIconFactory from './PenIcon'; import { createScreenshotInputStyles } from './ScreenshotInput.css'; import { useTakeScreenshotFactory } from './useTakeScreenshot'; @@ -76,6 +77,7 @@ export function ScreenshotEditorFactory({ return function ScreenshotEditor({ onError }: Props): VNode { const styles = hooks.useMemo(() => ({ __html: createScreenshotInputStyles(options.styleNonce).innerText }), []); const CropCorner = CropCornerFactory({ h }); + const PenIcon = PenIconFactory({ h }); const canvasContainerRef = hooks.useRef(null); const cropContainerRef = hooks.useRef(null); @@ -393,14 +395,15 @@ export function ScreenshotEditorFactory({