文件
chen 301194963b
一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
feat: Initial clean release of CHM
2026-11-04 11:29:39 +08:00

45 行
1.1 KiB
TypeScript

import * as React from 'react';
import { useCallback, useState } from 'react';
import { themeStyle } from '../global-style';
import { TouchableRipple } from 'react-native-paper';
import BottomDrawerMenu, { MenuOption } from '../BottomDrawerMenu';
import { MenuAlignment } from '../BottomDrawer';
interface Props {
themeId: number;
options: MenuOption[];
children: React.ReactNode;
}
const MenuComponent: React.FC<Props> = props => {
const theme = themeStyle(props.themeId);
const [open, setOpen] = useState(false);
const onMenuClosed = useCallback(() => {
setOpen(false);
}, []);
return <>
<TouchableRipple
borderless={true}
onPress={() => setOpen(true)}
rippleColor={theme.backgroundColorTransparent2}
role='button'
testID='screen-header-menu-trigger'
>
{props.children}
</TouchableRipple>
<BottomDrawerMenu
visible={open}
onDismiss={onMenuClosed}
// To match the side of the screen with the action button:
alignment={MenuAlignment.Right}
themeId={props.themeId}
options={props.options}
/>
</>;
};
export default MenuComponent;