Skip to content

Commit ddf3fb5

Browse files
committed
fix(notifications): more visible * 4
1 parent 2d7d947 commit ddf3fb5

File tree

3 files changed

+37
-9
lines changed

3 files changed

+37
-9
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { createContext, ReactNode, useContext } from 'react';
2+
3+
export interface NotificationsDialogContextValue {
4+
insideNotificationsDialog: boolean;
5+
}
6+
7+
export const NotificationsDialogContext =
8+
createContext<NotificationsDialogContextValue | null>(null);
9+
10+
export function NotificationsDialogProvider({
11+
children,
12+
}: {
13+
children: ReactNode;
14+
}) {
15+
return (
16+
<NotificationsDialogContext.Provider
17+
value={{ insideNotificationsDialog: true }}
18+
>
19+
{children}
20+
</NotificationsDialogContext.Provider>
21+
);
22+
}
23+
24+
export function useNotificationsDialogContext() {
25+
const context = useContext(NotificationsDialogContext);
26+
return context?.insideNotificationsDialog ?? false;
27+
}

src/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import {
1414
import { useNotificationsObserver } from '../hooks';
1515
import { CubeNotifyApiPropsWithID } from '../types';
1616

17+
import { NotificationsDialogProvider } from './NotificationsDialogContext';
18+
1719
export type NotificationsDialogTriggerProps = Omit<
1820
CubeDialogTriggerProps,
1921
'type'
@@ -56,7 +58,9 @@ export function NotificationsDialog(props: NotificationsDialogProps) {
5658
</VisuallyHidden>
5759

5860
<StyledDialogContent>
59-
<ClearSlots>{children}</ClearSlots>
61+
<NotificationsDialogProvider>
62+
<ClearSlots>{children}</ClearSlots>
63+
</NotificationsDialogProvider>
6064
</StyledDialogContent>
6165
</StyledDialog>
6266
);

src/components/overlays/NewNotifications/NotificationView/NotificationView.tsx

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { ForwardedRef, forwardRef, useContext } from 'react';
1+
import { ForwardedRef, forwardRef } from 'react';
22
import { useFocusRing, useHover } from 'react-aria';
33

44
import { useEvent, useTimer } from '../../../../_internal';
55
import { tasty } from '../../../../tasty';
66
import { ClearSlots, mergeProps } from '../../../../utils/react';
77
import { useId } from '../../../../utils/react/useId';
8-
import { DialogContext } from '../../Dialog/context';
8+
import { useNotificationsDialogContext } from '../Dialog/NotificationsDialogContext';
99

1010
import { NotificationCloseButton } from './NotificationCloseButton';
1111
import { NotificationDescription } from './NotificationDescription';
@@ -76,11 +76,8 @@ export const NotificationView = forwardRef(function NotificationView(
7676
const labelID = useId();
7777
const descriptionID = useId();
7878

79-
// Detect if we're inside a dialog
80-
const dialogContext = useContext(DialogContext);
81-
const insideDialog = dialogContext !== null && dialogContext !== undefined;
82-
83-
console.log('! insideDialog', insideDialog);
79+
// Detect if we're inside a NotificationsDialog specifically
80+
const insideNotificationsDialog = useNotificationsDialogContext();
8481

8582
const onCloseEvent = useEvent(() => {
8683
onClose?.();
@@ -117,7 +114,7 @@ export const NotificationView = forwardRef(function NotificationView(
117114
mods={{
118115
focused: isFocusVisible,
119116
'is-dismissible': isDismissible,
120-
'inside-dialog': insideDialog,
117+
'inside-dialog': insideNotificationsDialog,
121118
}}
122119
>
123120
<NotificationIcon icon={icon} type={type} />

0 commit comments

Comments
 (0)