diff options
author | Samuel Newman <mozzius@protonmail.com> | 2025-05-24 02:02:38 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-23 18:02:38 -0500 |
commit | c3f88e0a48bdf22831736ad3d44222e7c4418486 (patch) | |
tree | d72137786908d5c61ad52a7cb7aa8fd37472a615 /src/components/Menu | |
parent | 5aadb9e41b1305e673947b28ba0566bdc3a3325d (diff) | |
download | voidsky-c3f88e0a48bdf22831736ad3d44222e7c4418486.tar.zst |
Share menu (#7840)
* move post ctrls to #/components * restructure post controls, basic share menu * add border radius to searchable people list for android * Revert "add border radius to searchable people list for android" This reverts commit 417449086e25b82f5683b12f6405d972f48ce50e. * add copy link to native share menu * reorg files again * open native share menu on long press * Translation comments Thanks @surfdude29 * abs path * update type imports, remove forwardRef * rm react import * equal spacing of buttons, extract disco debug * add better icon * add right offset to share button for visual alignment * Add recent chats to share menu (#7853) * add recent chats to share menu * Update RecentChats.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update RecentChats.tsx * add fading edge on andriod * tweak scrollview * Add metrics and A/B alt icon to share menu (#8401) * add metrics * add a/b tested alt icon --------- Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * More descriptive share text/icon on web (#7854) * more descriptive share text on web * revert dev mode changes * add missing import * use modified share icon everywhere * Add back conflicting changes --------- Co-authored-by: Eric Bailey <git@esb.lol> --------- Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> Co-authored-by: Eric Bailey <git@esb.lol>
Diffstat (limited to 'src/components/Menu')
-rw-r--r-- | src/components/Menu/index.tsx | 37 | ||||
-rw-r--r-- | src/components/Menu/index.web.tsx | 4 |
2 files changed, 39 insertions, 2 deletions
diff --git a/src/components/Menu/index.tsx b/src/components/Menu/index.tsx index 76fc74dc1..c5ccfa5ec 100644 --- a/src/components/Menu/index.tsx +++ b/src/components/Menu/index.tsx @@ -244,6 +244,38 @@ export function ItemRadio({selected}: {selected: boolean}) { ) } +/** + * NATIVE ONLY - for adding non-pressable items to the menu + * + * @platform ios, android + */ +export function ContainerItem({ + children, + style, +}: { + children: React.ReactNode + style?: StyleProp<ViewStyle> +}) { + const t = useTheme() + return ( + <View + style={[ + a.flex_row, + a.align_center, + a.gap_sm, + a.px_md, + a.rounded_md, + a.border, + t.atoms.bg_contrast_25, + t.atoms.border_contrast_low, + {paddingVertical: 10}, + style, + ]}> + {children} + </View> + ) +} + export function LabelText({children}: {children: React.ReactNode}) { const t = useTheme() return ( @@ -272,13 +304,14 @@ export function Group({children, style}: GroupProps) { style, ]}> {flattenReactChildren(children).map((child, i) => { - return React.isValidElement(child) && child.type === Item ? ( + return React.isValidElement(child) && + (child.type === Item || child.type === ContainerItem) ? ( <React.Fragment key={i}> {i > 0 ? ( <View style={[a.border_b, t.atoms.border_contrast_low]} /> ) : null} {React.cloneElement(child, { - // @ts-ignore + // @ts-expect-error cloneElement is not aware of the types style: { borderRadius: 0, borderWidth: 0, diff --git a/src/components/Menu/index.web.tsx b/src/components/Menu/index.web.tsx index 27678bf2f..7d6e50556 100644 --- a/src/components/Menu/index.web.tsx +++ b/src/components/Menu/index.web.tsx @@ -390,3 +390,7 @@ export function Divider() { /> ) } + +export function ContainerItem() { + return null +} |