From c0e3adf45e3a28efbaaf23a39b49a0daaeaffc39 Mon Sep 17 00:00:00 2001 From: nikec <43032218+niikeec@users.noreply.github.com> Date: Mon, 28 Aug 2023 14:38:47 +0200 Subject: [PATCH] [ENG-1013] prevent explorer parent context menu on DismissibleNotice (#1261) prevent explorer parent context menu --- .../$libraryId/Explorer/DismissibleNotice.tsx | 1 + interface/app/$libraryId/Explorer/index.tsx | 42 +++++++++---------- interface/components/DismissibleNotice.tsx | 33 ++++++++++----- 3 files changed, 43 insertions(+), 33 deletions(-) diff --git a/interface/app/$libraryId/Explorer/DismissibleNotice.tsx b/interface/app/$libraryId/Explorer/DismissibleNotice.tsx index 4e2c92642..b8b2afb03 100644 --- a/interface/app/$libraryId/Explorer/DismissibleNotice.tsx +++ b/interface/app/$libraryId/Explorer/DismissibleNotice.tsx @@ -91,6 +91,7 @@ export default () => { description={notice.description} className="m-5" storageKey={notice.key} + onContextMenu={(e) => e.preventDefault()} /> ); }; diff --git a/interface/app/$libraryId/Explorer/index.tsx b/interface/app/$libraryId/Explorer/index.tsx index 1efb1ada8..f04f93acf 100644 --- a/interface/app/$libraryId/Explorer/index.tsx +++ b/interface/app/$libraryId/Explorer/index.tsx @@ -41,29 +41,27 @@ export default function Explorer(props: PropsWithChildren) { return ( <> -
-
- {explorer.items && explorer.items.length > 0 && } +
+ {explorer.items && explorer.items.length > 0 && } - } - emptyNotice={ - props.emptyNotice ?? ( - - ) - } - /> -
+ } + emptyNotice={ + props.emptyNotice ?? ( + + ) + } + />
diff --git a/interface/components/DismissibleNotice.tsx b/interface/components/DismissibleNotice.tsx index ec3c211ef..6568f0808 100644 --- a/interface/components/DismissibleNotice.tsx +++ b/interface/components/DismissibleNotice.tsx @@ -7,7 +7,7 @@ import { useDismissibleNoticeStore } from '~/hooks/useDismissibleNoticeStore'; -interface Props { +interface Props extends Omit, 'title'> { icon?: ReactNode; title: string | ReactNode; description: string; @@ -17,31 +17,42 @@ interface Props { storageKey: keyof typeof dismissibleNoticeStore; } -export default (props: Props) => { +export default ({ + icon, + title, + description, + onDismiss, + onLearnMore, + storageKey, + className, + ...props +}: Props) => { const dismissibleNoticeStore = useDismissibleNoticeStore(); - if (dismissibleNoticeStore[props.storageKey]) return null; + if (dismissibleNoticeStore[storageKey]) return null; + return (
- {props.icon} + {icon}
-

{props.title}

-

{props.description}

+

{title}

+

{description}

- {props.onLearnMore && ( + {onLearnMore && ( @@ -50,8 +61,8 @@ export default (props: Props) => { variant="accent" className="font-medium" onClick={() => { - getDismissibleNoticeStore()[props.storageKey] = true; - props.onDismiss?.(); + getDismissibleNoticeStore()[storageKey] = true; + onDismiss?.(); }} > Got it