From c4785ef96e13d02b217dce4e777269c0e895507d Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 21 Mar 2025 18:29:14 +0200 Subject: New `ContextMenu` menu type for DM messages (#8014) * get context menu somewhat working ish * take screenshot rather than double rendering * get animations somewhat working * get transform animation working * rm log * upwards safe area * get working on android * get android working once and for all * fix positioning on both platforms * use dark blur on ios always, fix dark mode * allow closing with hardware back press * try and fix type error * add note about ts-ignore * round post * add image capture error handling * extract magic numbers * set explicit embed width, rm top margin * Message embed width tweaks * Format * fix position of embeds * same as above for web --------- Co-authored-by: Eric Bailey --- src/components/ContextMenu/context.tsx | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/components/ContextMenu/context.tsx (limited to 'src/components/ContextMenu/context.tsx') diff --git a/src/components/ContextMenu/context.tsx b/src/components/ContextMenu/context.tsx new file mode 100644 index 000000000..213d87a8c --- /dev/null +++ b/src/components/ContextMenu/context.tsx @@ -0,0 +1,31 @@ +import React from 'react' + +import type {ContextType, ItemContextType} from '#/components/ContextMenu/types' + +export const Context = React.createContext(null) + +export const ItemContext = React.createContext(null) + +export function useContextMenuContext() { + const context = React.useContext(Context) + + if (!context) { + throw new Error( + 'useContextMenuContext must be used within a Context.Provider', + ) + } + + return context +} + +export function useContextMenuItemContext() { + const context = React.useContext(ItemContext) + + if (!context) { + throw new Error( + 'useContextMenuItemContext must be used within a Context.Provider', + ) + } + + return context +} -- cgit 1.4.1