fix: fix home errors (#3783)

* fix: remove KeyboardManager

* fix: fix routes

* fix: fix types

* fix: fix types

* fix: remove unused button

* fix: fix warnings

* fix: fix types

* fix: fix types

* Update MAX_WARNINGS_COUNT to 197 in lintCheck.js.
This commit is contained in:
huhuanming
2023-11-10 15:43:11 +08:00
committed by GitHub
parent f76a8eda2b
commit 0737681784
61 changed files with 485 additions and 567 deletions

2
@types/globals.d.ts vendored
View File

@@ -55,6 +55,7 @@ declare global {
var chrome: typeof chrome; // chrome api
var browser: typeof chrome; // firefox api
// eslint-disable-next-line @typescript-eslint/naming-convention
interface Window {
// All website
ethereum: any;
@@ -76,6 +77,7 @@ declare global {
declare global {
namespace FormatjsIntl {
// eslint-disable-next-line @typescript-eslint/naming-convention
interface Message {
ids: ILocaleIds;
}

View File

@@ -1,18 +1,18 @@
import { app, globalShortcut } from 'electron';
import { getShortcutsMap } from '@onekeyhq/shared/src/shortcuts/shortcuts.enum';
import type { ExplorerShortcutEvents } from '@onekeyhq/shared/src/shortcuts/shortcuts.enum';
import type { EExplorerShortcutEvents } from '@onekeyhq/shared/src/shortcuts/shortcuts.enum';
const shortcutsMap = getShortcutsMap(process.platform === 'darwin');
export function registerShortcuts(
callback: (event: ExplorerShortcutEvents) => void,
callback: (event: EExplorerShortcutEvents) => void,
) {
void app.whenReady().then(() => {
Object.entries(shortcutsMap).forEach(([event, { keys }]) => {
if (keys) {
globalShortcut.register(keys, () => {
console.log('shortcut', event);
callback(event as ExplorerShortcutEvents);
callback(event as EExplorerShortcutEvents);
});
}
});

View File

@@ -1,7 +1,7 @@
const { execSync } = require('child_process');
const { exit } = require('process');
const MAX_WARNINGS_COUNT = 247;
const MAX_WARNINGS_COUNT = 196;
function handleWarnings(result) {
const warningsCount = result.match(/, (\d+) warnings\)/)?.[1];

View File

@@ -1,7 +1,7 @@
const { execSync } = require('child_process');
const { exit } = require('process');
const MAX_ERROR_COUNT = 61;
const MAX_ERROR_COUNT = 58;
try {
execSync(

View File

@@ -6,10 +6,9 @@ import { createSuspender } from '@onekeyhq/shared/src/modules3rdParty/use-suspen
import ICON_CONFIG from './Icons';
import type { IICON_NAMES } from './Icons';
import { GetProps, styled } from 'tamagui';
import { GetProps, styled, withStaticProperties } from 'tamagui';
import type { Svg, SvgProps } from 'react-native-svg';
import { TextStyle } from 'react-native';
import { Skeleton } from '../Skeleton';
export type IIconContainerProps = Omit<SvgProps, 'color' | 'style'> & {
name?: IICON_NAMES;
@@ -20,15 +19,20 @@ const ComponentMaps: Record<string, typeof Svg> = {};
const DEFAULT_SIZE = 24
const loadIcon = (name: IICON_NAMES) => {
return new Promise<typeof Svg>(resolve => {
ICON_CONFIG[name]().then((module: any) => {
ComponentMaps[name] = module.default as typeof Svg;
resolve(ComponentMaps[name])
})
})
}
const { useSuspender } = createSuspender((name: IICON_NAMES) => new Promise<typeof Svg>((resolve) => {
if (ComponentMaps[name]) {
resolve(ComponentMaps[name])
} else {
ICON_CONFIG[name]().then((module: any) => {
ComponentMaps[name] = module.default as typeof Svg;
resolve(ComponentMaps[name])
})
loadIcon(name).then(resolve)
}
}))
@@ -76,7 +80,7 @@ const IconContainer = forwardRef(({ name, style }: IIconContainerProps, _) => {
)
});
export const Icon = styled(IconContainer, {
const BasicIcon = styled(IconContainer, {
variants: {
color: {
'...color': (color) => ({
@@ -107,5 +111,13 @@ export const Icon = styled(IconContainer, {
} as const,
});
const loadIcons = (...names: IICON_NAMES[]) => {
return Promise.all(names.map(name => loadIcon(name)))
}
export const Icon = withStaticProperties(BasicIcon, {
prefetch: loadIcons,
})
export type { IICON_NAMES };
export type IIconProps = GetProps<typeof Icon> & IIconContainerProps;

View File

@@ -5,7 +5,7 @@ import { MotiView } from 'moti';
import { StyleSheet } from 'react-native';
import { getTokens, useTheme } from 'tamagui';
import { Portal, YStack } from '@onekeyhq/components';
import { Icon, Portal, YStack } from '@onekeyhq/components';
import { DesktopDragZoneAbsoluteBar } from '@onekeyhq/components/src/DesktopDragZoneBox';
import useSafeAreaInsets from '@onekeyhq/components/src/Provider/hooks/useSafeAreaInsets';
import platformEnv from '@onekeyhq/shared/src/platformEnv';
@@ -34,6 +34,14 @@ function TabItemView({
options: BottomTabNavigationOptions;
isCollapse?: boolean;
}) {
useMemo(() => {
// @ts-expect-error
const activeIcon = options?.tabBarIcon?.(true) as IICON_NAMES;
// @ts-expect-error
const inActiveIcon = options?.tabBarIcon?.(false) as IICON_NAMES;
// Avoid icon jitter during lazy loading by prefetching icons.
void Icon.prefetch(activeIcon, inActiveIcon);
}, [options]);
const contentMemo = useMemo(
() => (
<TabItem

View File

@@ -2,9 +2,9 @@ import type { FC } from 'react';
import { useAppStateChange } from '@onekeyhq/kit/src/hooks/useAppStateChange';
type AppStatusActiveListenerProps = { onActive: () => void };
type IAppStatusActiveListenerProps = { onActive: () => void };
export const AppStatusActiveListener: FC<AppStatusActiveListenerProps> = ({
export const AppStatusActiveListener: FC<IAppStatusActiveListenerProps> = ({
onActive,
}) => {
useAppStateChange(onActive);

View File

@@ -4,16 +4,16 @@ import { useCallback, useEffect, useRef } from 'react';
import type { IDesktopAppState } from '@onekeyhq/desktop/src-electron/preload';
import platformEnv from '@onekeyhq/shared/src/platformEnv';
type Status = IDesktopAppState;
type IStatus = IDesktopAppState;
type AppStatusActiveListenerProps = { onActive: () => void };
type IAppStatusActiveListenerProps = { onActive: () => void };
const DesktopStatusActiveListener: FC<AppStatusActiveListenerProps> = ({
const DesktopStatusActiveListener: FC<IAppStatusActiveListenerProps> = ({
onActive,
}) => {
const appState = useRef<Status>();
const appState = useRef<IStatus>();
const onChange = useCallback(
(nextState: Status) => {
(nextState: IStatus) => {
if (appState.current === 'background' && nextState === 'active') {
onActive?.();
}
@@ -25,14 +25,14 @@ const DesktopStatusActiveListener: FC<AppStatusActiveListenerProps> = ({
return null;
};
const ExtStatusActiveListener: FC<AppStatusActiveListenerProps> = ({
const ExtStatusActiveListener: FC<IAppStatusActiveListenerProps> = ({
onActive,
}) => {
useEffect(onActive, [onActive]);
return null;
};
export const AppStatusActiveListener: FC<AppStatusActiveListenerProps> = ({
export const AppStatusActiveListener: FC<IAppStatusActiveListenerProps> = ({
onActive,
}) => {
if (platformEnv.isDesktop) {

View File

@@ -6,18 +6,18 @@ import { ERROR_CODE } from 'react-native-webview/lib/WebViewShared';
import { Button, Stack, Text } from '@onekeyhq/components';
import type EnLanguage from '@onekeyhq/components/src/locale/en-US.json';
type LanguageId = keyof typeof EnLanguage;
type ILanguageId = keyof typeof EnLanguage;
interface ErrorViewProps {
interface IErrorViewProps {
errorCode?: number;
onRefresh: () => void;
}
const ErrorView: FC<ErrorViewProps> = ({ errorCode, onRefresh }) => {
const ErrorView: FC<IErrorViewProps> = ({ errorCode, onRefresh }) => {
const intl = useIntl();
const messages: {
title: LanguageId;
subTitle: LanguageId;
title: ILanguageId;
subTitle: ILanguageId;
} = useMemo(() => {
if (errorCode === ERROR_CODE.CONNECTION_FAILED) {
return {

View File

@@ -8,10 +8,13 @@ import type {
IStackNavigationOptions,
} from '@onekeyhq/components/src/Navigation';
import { RootRoutes } from '../routes/Root/Routes';
import { ERootRoutes } from '../routes/Root/Routes';
import type { ModalParamList, ModalRoutes } from '../routes/Root/Modal/Routes';
import type { TabRoutes, TabStackParamList } from '../routes/Root/Tab/Routes';
import type {
EModalRoutes,
IModalParamList,
} from '../routes/Root/Modal/Routes';
import type { ETabRoutes, ITabStackParamList } from '../routes/Root/Tab/Routes';
function useAppNavigation<
P extends
@@ -33,27 +36,27 @@ function useAppNavigation<
}
};
const switchTab = <T extends TabRoutes>(
const switchTab = <T extends ETabRoutes>(
route: T,
params?: {
screen: keyof TabStackParamList[T];
params?: TabStackParamList[T][keyof TabStackParamList[T]];
screen: keyof ITabStackParamList[T];
params?: ITabStackParamList[T][keyof ITabStackParamList[T]];
},
) => {
navigation.navigate(RootRoutes.Main, {
navigation.navigate(ERootRoutes.Main, {
screen: route,
params,
});
};
const pushModal = <T extends ModalRoutes>(
const pushModal = <T extends EModalRoutes>(
route: T,
params?: {
screen: keyof ModalParamList[T];
params?: ModalParamList[T][keyof ModalParamList[T]];
screen: keyof IModalParamList[T];
params?: IModalParamList[T][keyof IModalParamList[T]];
},
) => {
navigation.navigate(RootRoutes.Modal, {
navigation.navigate(ERootRoutes.Modal, {
screen: route,
params,
});

View File

@@ -1,151 +0,0 @@
import { memo } from 'react';
import { createStackNavigator } from '@onekeyhq/components';
import { useThemeValue } from '@onekeyhq/components/src/Provider/hooks/useThemeValue';
import ComponentsScreen from '@onekeyhq/kit/src/views/Components';
import ActionListGallery from '@onekeyhq/kit/src/views/Components/stories/ActionList';
import BadgeGallery from '@onekeyhq/kit/src/views/Components/stories/Badge';
import ButtonGallery from '@onekeyhq/kit/src/views/Components/stories/Button';
import CheckboxGallery from '@onekeyhq/kit/src/views/Components/stories/Checkbox';
import DialogGallery from '@onekeyhq/kit/src/views/Components/stories/Dialog';
import EmptyGallery from '@onekeyhq/kit/src/views/Components/stories/Empty';
import IconGallery from '@onekeyhq/kit/src/views/Components/stories/Icon';
import IconButtonGallery from '@onekeyhq/kit/src/views/Components/stories/IconButton';
import InputGallery from '@onekeyhq/kit/src/views/Components/stories/Input';
import ListItemGallery from '@onekeyhq/kit/src/views/Components/stories/ListItem';
import LottieViewGallery from '@onekeyhq/kit/src/views/Components/stories/LottieView';
import DemoRootApp from '@onekeyhq/kit/src/views/Components/stories/NavigatorRoute';
import PopoverGallery from '@onekeyhq/kit/src/views/Components/stories/Popover';
import ProgressGallery from '@onekeyhq/kit/src/views/Components/stories/Progress';
import RadioGallery from '@onekeyhq/kit/src/views/Components/stories/Radio';
import SegmentControlGallery from '@onekeyhq/kit/src/views/Components/stories/SegmentControl';
import SelectGallery from '@onekeyhq/kit/src/views/Components/stories/Select';
import SliderGallery from '@onekeyhq/kit/src/views/Components/stories/Slider';
import SwitchGallery from '@onekeyhq/kit/src/views/Components/stories/Switch';
import TabViewGallery from '@onekeyhq/kit/src/views/Components/stories/TabView';
import ToastGallery from '@onekeyhq/kit/src/views/Components/stories/Toast';
import TooltipGallery from '@onekeyhq/kit/src/views/Components/stories/Tooltip';
import TypographyGallery from '@onekeyhq/kit/src/views/Components/stories/Typography';
import WebviewGallery from '@onekeyhq/kit/src/views/Components/stories/WebView';
import AlertGallery from '../../views/Components/stories/Alert';
import DividerGallery from '../../views/Components/stories/Divider';
import FormGallery from '../../views/Components/stories/Form';
import JotaiGlobalGallery from '../../views/Components/stories/JotaiGlobalGallery';
import ListViewGallery from '../../views/Components/stories/ListView';
import QRCodeGallery from '../../views/Components/stories/QRCode';
import ScrollViewGallery from '../../views/Components/stories/ScrollView';
import SectionListGallery from '../../views/Components/stories/SectionList';
import SkeletonGallery from '../../views/Components/stories/Skeleton';
import TextAreaGallery from '../../views/Components/stories/TextArea';
import ThemeGallery from '../../views/Components/stories/Theme';
import { GalleryRoutes } from './routes';
export const stackScreenList = [
{ name: GalleryRoutes.Components, component: ComponentsScreen },
{
name: GalleryRoutes.ComponentTypography,
component: TypographyGallery,
},
{
name: GalleryRoutes.ComponentLottieView,
component: LottieViewGallery,
},
{ name: GalleryRoutes.ComponentIcon, component: IconGallery },
{ name: GalleryRoutes.ComponentToast, component: ToastGallery },
{ name: GalleryRoutes.ComponentSelect, component: SelectGallery },
{ name: GalleryRoutes.ComponentTooltip, component: TooltipGallery },
{ name: GalleryRoutes.ComponentBadge, component: BadgeGallery },
{ name: GalleryRoutes.ComponentInput, component: InputGallery },
{ name: GalleryRoutes.ComponentDialog, component: DialogGallery },
{ name: GalleryRoutes.ComponentEmpty, component: EmptyGallery },
{ name: GalleryRoutes.ComponentRadio, component: RadioGallery },
{ name: GalleryRoutes.ComponentListView, component: ListViewGallery },
{ name: GalleryRoutes.ComponentSectionList, component: SectionListGallery },
{ name: GalleryRoutes.ComponentListItem, component: ListItemGallery },
{ name: GalleryRoutes.ComponentSkeleton, component: SkeletonGallery },
{ name: GalleryRoutes.ComponentCheckbox, component: CheckboxGallery },
{ name: GalleryRoutes.ComponentActionList, component: ActionListGallery },
{ name: GalleryRoutes.ComponentPopover, component: PopoverGallery },
{ name: GalleryRoutes.ComponentProgress, component: ProgressGallery },
{
name: GalleryRoutes.ComponentIconButton,
component: IconButtonGallery,
},
{ name: GalleryRoutes.ComponentSwitch, component: SwitchGallery },
{ name: GalleryRoutes.ComponentButton, component: ButtonGallery },
{ name: GalleryRoutes.ComponentTextArea, component: TextAreaGallery },
{ name: GalleryRoutes.ComponentSlider, component: SliderGallery },
{
name: GalleryRoutes.ComponentNavigation,
component: DemoRootApp,
options: { headerShown: false },
},
{
name: GalleryRoutes.ComponentSegmentControl,
component: SegmentControlGallery,
},
{ name: GalleryRoutes.ComponentAlert, component: AlertGallery },
{ name: GalleryRoutes.ComponentDivider, component: DividerGallery },
{ name: GalleryRoutes.ComponentTheme, component: ThemeGallery },
{ name: GalleryRoutes.ComponentScrollView, component: ScrollViewGallery },
{ name: GalleryRoutes.ComponentJotaiGlobal, component: JotaiGlobalGallery },
{
name: GalleryRoutes.ComponentForm,
component: FormGallery,
},
{
name: GalleryRoutes.ComponentTabview,
component: TabViewGallery,
},
{
name: GalleryRoutes.componentQRCode,
component: QRCodeGallery,
},
{
name: GalleryRoutes.ComponentWebview,
component: WebviewGallery,
},
];
const DevStack = createStackNavigator();
const DevScreen = () => {
const [bgAppColor, textColor] = useThemeValue(
['bgApp', 'text'],
undefined,
true,
);
return (
<DevStack.Navigator>
<DevStack.Group>
{stackScreenList.map((stack) => (
<DevStack.Screen
key={stack.name}
name={stack.name}
component={stack.component}
options={() => ({
headerStyle: {
backgroundColor: bgAppColor,
},
cardStyle: {
flex: 1,
},
headerTintColor: textColor,
headerShadowVisible: false,
detachPreviousScreen: false,
freezeOnBlur: true,
// native stack
animation: 'none',
...stack.options,
})}
/>
))}
</DevStack.Group>
</DevStack.Navigator>
);
};
export default memo(DevScreen, () => true);

View File

@@ -2,20 +2,20 @@ import type { IModalRootNavigatorConfig } from '@onekeyhq/components/src/Navigat
import { RootModalNavigator } from '@onekeyhq/components/src/Navigation/Navigator';
import { ModalDiscoverStack } from './Discover';
import { ModalRoutes } from './Routes';
import { EModalRoutes } from './Routes';
import { ModalTestStack } from './TestModal/ModalTestStack';
const config: IModalRootNavigatorConfig<ModalRoutes>[] = [
const config: IModalRootNavigatorConfig<EModalRoutes>[] = [
{
name: ModalRoutes.TestModal,
name: EModalRoutes.TestModal,
children: ModalTestStack,
},
{
name: ModalRoutes.DiscoverModal,
name: EModalRoutes.DiscoverModal,
children: ModalDiscoverStack,
},
];
export default function ModalNavigator() {
return <RootModalNavigator<ModalRoutes> config={config} />;
return <RootModalNavigator<EModalRoutes> config={config} />;
}

View File

@@ -1,12 +1,12 @@
import type { ModalTestParamList } from './TestModal/Routes';
import type { IModalTestParamList } from './TestModal/Routes';
import type { DiscoverModalParamList } from '../../../views/Discover/types';
export enum ModalRoutes {
export enum EModalRoutes {
TestModal = 'TestModalStack',
DiscoverModal = 'DiscoverModal',
}
export type ModalParamList = {
[ModalRoutes.TestModal]: ModalTestParamList;
[ModalRoutes.DiscoverModal]: DiscoverModalParamList;
export type IModalParamList = {
[EModalRoutes.TestModal]: IModalTestParamList;
[EModalRoutes.DiscoverModal]: DiscoverModalParamList;
};

View File

@@ -1,16 +1,16 @@
import type { IModalFlowNavigatorConfig } from '@onekeyhq/components/src/Navigation/Navigator';
import { ModalTestRoutes } from './Routes';
import { EModalTestRoutes } from './Routes';
import TestSimpleModal from './TestSimpleModal';
import type { ModalTestParamList } from './Routes';
import type { IModalTestParamList } from './Routes';
export const ModalTestStack: IModalFlowNavigatorConfig<
ModalTestRoutes,
ModalTestParamList
EModalTestRoutes,
IModalTestParamList
>[] = [
{
name: ModalTestRoutes.TestSimpleModal,
name: EModalTestRoutes.TestSimpleModal,
component: TestSimpleModal,
translationId: 'Locked Modal Demo',
},

View File

@@ -1,7 +1,7 @@
export enum ModalTestRoutes {
export enum EModalTestRoutes {
TestSimpleModal = 'TestSimpleModal',
}
export type ModalTestParamList = {
[ModalTestRoutes.TestSimpleModal]: { question: string };
export type IModalTestParamList = {
[EModalTestRoutes.TestSimpleModal]: { question: string };
};

View File

@@ -4,11 +4,11 @@ import { ModalContainer, Stack, Text } from '@onekeyhq/components';
import type { IModalScreenProps } from '@onekeyhq/components/src/Navigation';
import HeaderIconButton from '@onekeyhq/components/src/Navigation/Header/HeaderIconButton';
import type { ModalTestParamList } from './Routes';
import type { IModalTestParamList } from './Routes';
export default function TestSimpleModal({
navigation,
}: IModalScreenProps<ModalTestParamList>) {
}: IModalScreenProps<IModalTestParamList>) {
const headerRightCall = useCallback(
() => <HeaderIconButton icon="AnonymousHidden2Outline" />,
[],

View File

@@ -8,26 +8,20 @@ import type { IRootStackNavigatorConfig } from '@onekeyhq/components/src/Navigat
import { RootStackNavigator } from '@onekeyhq/components/src/Navigation/Navigator';
import ModalNavigator from './Modal/ModalNavigator';
import { RootRoutes } from './Routes';
import { ERootRoutes } from './Routes';
import TabNavigator from './Tab/TabNavigator';
const rootConfig: IRootStackNavigatorConfig<RootRoutes, any>[] = [
const rootConfig: IRootStackNavigatorConfig<ERootRoutes, any>[] = [
{
name: RootRoutes.Main,
name: ERootRoutes.Main,
component: TabNavigator,
initialRoute: true,
},
{
name: RootRoutes.Modal,
name: ERootRoutes.Modal,
component: ModalNavigator,
type: 'modal',
},
{
name: RootRoutes.Gallery,
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
component: require('../Gallery').default,
// disable: process.env.NODE_ENV === 'production',
},
];
export const RootNavigator = () => {
@@ -50,5 +44,5 @@ export const RootNavigator = () => {
}
}, [intl]);
return <RootStackNavigator<RootRoutes, any> config={rootConfig} />;
return <RootStackNavigator<ERootRoutes, any> config={rootConfig} />;
};

View File

@@ -1,4 +1,4 @@
export enum RootRoutes {
export enum ERootRoutes {
Main = 'main',
Modal = 'modal',

View File

@@ -0,0 +1,106 @@
import ComponentsScreen from '@onekeyhq/kit/src/views/Components';
import ActionListGallery from '@onekeyhq/kit/src/views/Components/stories/ActionList';
import BadgeGallery from '@onekeyhq/kit/src/views/Components/stories/Badge';
import ButtonGallery from '@onekeyhq/kit/src/views/Components/stories/Button';
import CheckboxGallery from '@onekeyhq/kit/src/views/Components/stories/Checkbox';
import DialogGallery from '@onekeyhq/kit/src/views/Components/stories/Dialog';
import EmptyGallery from '@onekeyhq/kit/src/views/Components/stories/Empty';
import IconGallery from '@onekeyhq/kit/src/views/Components/stories/Icon';
import IconButtonGallery from '@onekeyhq/kit/src/views/Components/stories/IconButton';
import InputGallery from '@onekeyhq/kit/src/views/Components/stories/Input';
import ListItemGallery from '@onekeyhq/kit/src/views/Components/stories/ListItem';
import LottieViewGallery from '@onekeyhq/kit/src/views/Components/stories/LottieView';
import DemoRootApp from '@onekeyhq/kit/src/views/Components/stories/NavigatorRoute';
import PopoverGallery from '@onekeyhq/kit/src/views/Components/stories/Popover';
import ProgressGallery from '@onekeyhq/kit/src/views/Components/stories/Progress';
import RadioGallery from '@onekeyhq/kit/src/views/Components/stories/Radio';
import SegmentControlGallery from '@onekeyhq/kit/src/views/Components/stories/SegmentControl';
import SelectGallery from '@onekeyhq/kit/src/views/Components/stories/Select';
import SliderGallery from '@onekeyhq/kit/src/views/Components/stories/Slider';
import SwitchGallery from '@onekeyhq/kit/src/views/Components/stories/Switch';
import TabViewGallery from '@onekeyhq/kit/src/views/Components/stories/TabView';
import ToastGallery from '@onekeyhq/kit/src/views/Components/stories/Toast';
import TooltipGallery from '@onekeyhq/kit/src/views/Components/stories/Tooltip';
import TypographyGallery from '@onekeyhq/kit/src/views/Components/stories/Typography';
import WebviewGallery from '@onekeyhq/kit/src/views/Components/stories/WebView';
import AlertGallery from '../../../../../views/Components/stories/Alert';
import DividerGallery from '../../../../../views/Components/stories/Divider';
import FormGallery from '../../../../../views/Components/stories/Form';
import JotaiGlobalGallery from '../../../../../views/Components/stories/JotaiGlobalGallery';
import ListViewGallery from '../../../../../views/Components/stories/ListView';
import QRCodeGallery from '../../../../../views/Components/stories/QRCode';
import ScrollViewGallery from '../../../../../views/Components/stories/ScrollView';
import SectionListGallery from '../../../../../views/Components/stories/SectionList';
import SkeletonGallery from '../../../../../views/Components/stories/Skeleton';
import TextAreaGallery from '../../../../../views/Components/stories/TextArea';
import ThemeGallery from '../../../../../views/Components/stories/Theme';
import { EGalleryRoutes } from './routes';
export const galleryScreenList = [
{ name: EGalleryRoutes.Components, component: ComponentsScreen },
{
name: EGalleryRoutes.ComponentTypography,
component: TypographyGallery,
},
{
name: EGalleryRoutes.ComponentLottieView,
component: LottieViewGallery,
},
{ name: EGalleryRoutes.ComponentIcon, component: IconGallery },
{ name: EGalleryRoutes.ComponentToast, component: ToastGallery },
{ name: EGalleryRoutes.ComponentSelect, component: SelectGallery },
{ name: EGalleryRoutes.ComponentTooltip, component: TooltipGallery },
{ name: EGalleryRoutes.ComponentBadge, component: BadgeGallery },
{ name: EGalleryRoutes.ComponentInput, component: InputGallery },
{ name: EGalleryRoutes.ComponentDialog, component: DialogGallery },
{ name: EGalleryRoutes.ComponentEmpty, component: EmptyGallery },
{ name: EGalleryRoutes.ComponentRadio, component: RadioGallery },
{ name: EGalleryRoutes.ComponentListView, component: ListViewGallery },
{ name: EGalleryRoutes.ComponentSectionList, component: SectionListGallery },
{ name: EGalleryRoutes.ComponentListItem, component: ListItemGallery },
{ name: EGalleryRoutes.ComponentSkeleton, component: SkeletonGallery },
{ name: EGalleryRoutes.ComponentCheckbox, component: CheckboxGallery },
{ name: EGalleryRoutes.ComponentActionList, component: ActionListGallery },
{ name: EGalleryRoutes.ComponentPopover, component: PopoverGallery },
{ name: EGalleryRoutes.ComponentProgress, component: ProgressGallery },
{
name: EGalleryRoutes.ComponentIconButton,
component: IconButtonGallery,
},
{ name: EGalleryRoutes.ComponentSwitch, component: SwitchGallery },
{ name: EGalleryRoutes.ComponentButton, component: ButtonGallery },
{ name: EGalleryRoutes.ComponentTextArea, component: TextAreaGallery },
{ name: EGalleryRoutes.ComponentSlider, component: SliderGallery },
{
name: EGalleryRoutes.ComponentNavigation,
component: DemoRootApp,
// options: { headerShown: false },
},
{
name: EGalleryRoutes.ComponentSegmentControl,
component: SegmentControlGallery,
},
{ name: EGalleryRoutes.ComponentAlert, component: AlertGallery },
{ name: EGalleryRoutes.ComponentDivider, component: DividerGallery },
{ name: EGalleryRoutes.ComponentTheme, component: ThemeGallery },
{ name: EGalleryRoutes.ComponentScrollView, component: ScrollViewGallery },
{ name: EGalleryRoutes.ComponentJotaiGlobal, component: JotaiGlobalGallery },
{
name: EGalleryRoutes.ComponentForm,
component: FormGallery,
},
{
name: EGalleryRoutes.ComponentTabview,
component: TabViewGallery,
},
{
name: EGalleryRoutes.componentQRCode,
component: QRCodeGallery,
},
{
name: EGalleryRoutes.ComponentWebview,
component: WebviewGallery,
},
];

View File

@@ -1,4 +1,4 @@
export enum GalleryRoutes {
export enum EGalleryRoutes {
Components = 'components',
ComponentTypography = 'component/typography',
ComponentLottieView = 'component/lottieview',

View File

@@ -1,7 +1,11 @@
export enum TabDeveloperRoutes {
import { EGalleryRoutes } from './Gallery/routes';
export enum ETabDeveloperRoutes {
TabDeveloper = 'TabDeveloper',
ComponentsGallery = EGalleryRoutes.Components,
}
export type TabDeveloperParamList = {
[TabDeveloperRoutes.TabDeveloper]: undefined;
export type ITabDeveloperParamList = {
[ETabDeveloperRoutes.TabDeveloper]: undefined;
[ETabDeveloperRoutes.ComponentsGallery]: undefined;
};

View File

@@ -25,10 +25,8 @@ import backgroundApiProxy from '../../../../background/instance/backgroundApiPro
import useAppNavigation from '../../../../hooks/useAppNavigation';
import useCookie from '../../../../hooks/useCookie';
import { setLocale, setTheme } from '../../../../store/reducers/settings';
import { GalleryRoutes } from '../../../Gallery/routes';
import { RootRoutes } from '../../Routes';
import type { TabDeveloperParamList } from './Routes';
import { ETabDeveloperRoutes, type ITabDeveloperParamList } from './Routes';
const useStorage = platformEnv.isNative
? (key: AppSettingKey, initialValue?: boolean) => {
@@ -71,7 +69,7 @@ function PartContainer({
const TabDeveloper = () => {
const navigation =
useAppNavigation<IPageNavigationProp<TabDeveloperParamList>>();
useAppNavigation<IPageNavigationProp<ITabDeveloperParamList>>();
const dispatch = useDispatch();
const [rrtStatus, changeRRTStatus] = useStorage(AppSettingKey.rrt);
@@ -88,12 +86,7 @@ const TabDeveloper = () => {
<PartContainer title="Components">
<Button
onPress={() => {
navigation.push(RootRoutes.Gallery, {
screen: GalleryRoutes.Components,
params: {
ts: new Date().getTime(),
},
});
navigation.push(ETabDeveloperRoutes.ComponentsGallery);
}}
>
Gallery

View File

@@ -1,11 +1,11 @@
export enum TabHomeRoutes {
export enum ETabHomeRoutes {
TabHome = 'TabHome',
TabHomeStack1 = 'TabHomeStack1',
TabHomeStack2 = 'TabHomeStack2',
}
export type TabHomeParamList = {
[TabHomeRoutes.TabHome]: undefined;
[TabHomeRoutes.TabHomeStack1]: undefined;
[TabHomeRoutes.TabHomeStack2]: undefined;
export type ITabHomeParamList = {
[ETabHomeRoutes.TabHome]: undefined;
[ETabHomeRoutes.TabHomeStack1]: undefined;
[ETabHomeRoutes.TabHomeStack2]: undefined;
};

View File

@@ -3,18 +3,18 @@ import type { IPageNavigationProp } from '@onekeyhq/components/src/Navigation';
import useAppNavigation from '../../../../hooks/useAppNavigation';
import { TabHomeRoutes } from './Routes';
import { ETabHomeRoutes } from './Routes';
import type { TabHomeParamList } from './Routes';
import type { ITabHomeParamList } from './Routes';
const TabHome = () => {
const navigation = useAppNavigation<IPageNavigationProp<TabHomeParamList>>();
const navigation = useAppNavigation<IPageNavigationProp<ITabHomeParamList>>();
return (
<YStack>
<Button
onPress={() => {
navigation.push(TabHomeRoutes.TabHomeStack1);
navigation.push(ETabHomeRoutes.TabHomeStack1);
}}
>

View File

@@ -3,12 +3,12 @@ import type { IPageNavigationProp } from '@onekeyhq/components/src/Navigation';
import useAppNavigation from '../../../../hooks/useAppNavigation';
import { TabHomeRoutes } from './Routes';
import { ETabHomeRoutes } from './Routes';
import type { TabHomeParamList } from './Routes';
import type { ITabHomeParamList } from './Routes';
const TabHomeStack1 = () => {
const navigation = useAppNavigation<IPageNavigationProp<TabHomeParamList>>();
const navigation = useAppNavigation<IPageNavigationProp<ITabHomeParamList>>();
return (
<Screen>
@@ -22,7 +22,7 @@ const TabHomeStack1 = () => {
</Button>
<Button
onPress={() => {
navigation.push(TabHomeRoutes.TabHomeStack2);
navigation.push(ETabHomeRoutes.TabHomeStack2);
}}
>

View File

@@ -3,12 +3,12 @@ import type { IPageNavigationProp } from '@onekeyhq/components/src/Navigation';
import useAppNavigation from '../../../../hooks/useAppNavigation';
import { TabHomeRoutes } from './Routes';
import { ETabHomeRoutes } from './Routes';
import type { TabHomeParamList } from './Routes';
import type { ITabHomeParamList } from './Routes';
const TabHomeStack2 = () => {
const navigation = useAppNavigation<IPageNavigationProp<TabHomeParamList>>();
const navigation = useAppNavigation<IPageNavigationProp<ITabHomeParamList>>();
return (
<Screen>
@@ -22,7 +22,7 @@ const TabHomeStack2 = () => {
</Button>
<Button
onPress={() => {
navigation.push(TabHomeRoutes.TabHome);
navigation.push(ETabHomeRoutes.TabHome);
}}
>

View File

@@ -1,7 +1,7 @@
export enum TabMeRoutes {
export enum ETabMeRoutes {
TabMe = 'TabMe',
}
export type TabMeParamList = {
[TabMeRoutes.TabMe]: undefined;
export type ITabMeParamList = {
[ETabMeRoutes.TabMe]: undefined;
};

View File

@@ -1,46 +1,24 @@
import { useAtom } from 'jotai';
import { Button, Screen, YStack } from '@onekeyhq/components';
import type { IPageNavigationProp } from '@onekeyhq/components/src/Navigation';
import {
demoReadOnlyAtom,
demoWriteOnlyAtom,
} from '@onekeyhq/kit-bg/src/states/jotai/atoms/demo';
import useAppNavigation from '../../../../hooks/useAppNavigation';
import { TabRoutes } from '../Routes';
import { ETabRoutes } from '../Routes';
import type { TabMeParamList } from './Routes';
function MeJotaiDemo() {
const [b] = useAtom(demoReadOnlyAtom());
const [, w] = useAtom(demoWriteOnlyAtom());
return (
<Button
onPress={() => {
console.log('1');
w({ discount: 0.1 });
}}
>
hello: {b}
</Button>
);
}
import type { ITabMeParamList } from './Routes';
const TabMe = () => {
const navigation = useAppNavigation<IPageNavigationProp<TabMeParamList>>();
const navigation = useAppNavigation<IPageNavigationProp<ITabMeParamList>>();
return (
<Screen>
<YStack>
<Button
onPress={() => {
navigation.switchTab(TabRoutes.Home);
navigation.switchTab(ETabRoutes.Home);
}}
>
</Button>
<MeJotaiDemo />
</YStack>
</Screen>
);

View File

@@ -1,10 +1,10 @@
import type { TabHomeParamList } from './Home/Routes';
import type { TabMeParamList } from './Me/Routes';
import type { TabSwapParamList } from './Swap/Routes';
import type { WebViewParamList } from './WebView/Routes';
import type { DemoDeveloperTabParamList } from '../../../views/Components/stories/NavigatorRoute/Tab/RouteParamTypes';
import type { ITabHomeParamList } from './Home/Routes';
import type { ITabMeParamList } from './Me/Routes';
import type { ITabSwapParamList } from './Swap/Routes';
import type { IWebViewParamList } from './WebView/Routes';
import type { IDemoDeveloperTabParamList } from '../../../views/Components/stories/NavigatorRoute/Tab/RouteParamTypes';
export enum TabRoutes {
export enum ETabRoutes {
Home = 'Home',
Me = 'Me',
Developer = 'Developer',
@@ -12,10 +12,10 @@ export enum TabRoutes {
WebViewTab = 'WebViewTab',
}
export type TabStackParamList = {
[TabRoutes.Home]: TabHomeParamList;
[TabRoutes.Me]: TabMeParamList;
[TabRoutes.Developer]: DemoDeveloperTabParamList;
[TabRoutes.Swap]: TabSwapParamList;
[TabRoutes.WebViewTab]: WebViewParamList;
export type ITabStackParamList = {
[ETabRoutes.Home]: ITabHomeParamList;
[ETabRoutes.Me]: ITabMeParamList;
[ETabRoutes.Developer]: IDemoDeveloperTabParamList;
[ETabRoutes.Swap]: ITabSwapParamList;
[ETabRoutes.WebViewTab]: IWebViewParamList;
};

View File

@@ -1,7 +1,7 @@
export enum TabSwapRoutes {
export enum ETabSwapRoutes {
TabSwap = 'TabSwap',
}
export type TabSwapParamList = {
[TabSwapRoutes.TabSwap]: undefined;
export type ITabSwapParamList = {
[ETabSwapRoutes.TabSwap]: undefined;
};

View File

@@ -1,78 +1,79 @@
import { TabStackNavigator } from '@onekeyhq/components/src/Navigation/Navigator';
import type {
ITabNavigatorConfig,
ITabNavigatorExtraConfig,
TabNavigatorConfig,
} from '@onekeyhq/components/src/Navigation/Navigator/types';
import platformEnv from '@onekeyhq/shared/src/platformEnv';
import Swap from '../../../views/Swap';
import HomePage from '../../../views/Tab/Home/HomePageTabs';
import { TabDeveloperRoutes } from './Developer/Routes';
import { TabHomeRoutes } from './Home/Routes';
import { galleryScreenList } from './Developer/Gallery';
import { ETabDeveloperRoutes } from './Developer/Routes';
import { ETabHomeRoutes } from './Home/Routes';
import TabHomeStack1 from './Home/TabHomeStack1';
import TabHomeStack2 from './Home/TabHomeStack2';
import { TabMeRoutes } from './Me/Routes';
import { ETabMeRoutes } from './Me/Routes';
import TabMe from './Me/TabMe';
import { TabRoutes } from './Routes';
import { TabSwapRoutes } from './Swap/Routes';
import { WebViewRoutes } from './WebView/Routes';
import { ETabRoutes } from './Routes';
import { ETabSwapRoutes } from './Swap/Routes';
import { EWebViewRoutes } from './WebView/Routes';
const config: TabNavigatorConfig<TabRoutes>[] = [
const config: ITabNavigatorConfig<ETabRoutes>[] = [
{
name: TabRoutes.Home,
name: ETabRoutes.Home,
tabBarIcon: (focused?: boolean) =>
focused ? 'CreditCardSolid' : 'CreditCardOutline',
translationId: 'wallet__wallet',
freezeOnBlur: true,
children: [
{
name: TabHomeRoutes.TabHome,
name: ETabHomeRoutes.TabHome,
component: HomePage,
translationId: 'wallet__wallet',
},
{
name: TabHomeRoutes.TabHomeStack1,
name: ETabHomeRoutes.TabHomeStack1,
component: TabHomeStack1,
translationId: 'wallet__wallet',
},
{
name: TabHomeRoutes.TabHomeStack2,
name: ETabHomeRoutes.TabHomeStack2,
component: TabHomeStack2,
translationId: 'wallet__wallet',
},
],
},
{
name: TabRoutes.Swap,
name: ETabRoutes.Swap,
tabBarIcon: (focused?: boolean) =>
focused ? 'CreditCardSolid' : 'CreditCardOutline',
translationId: 'title__swap',
freezeOnBlur: true,
children: [
{
name: TabSwapRoutes.TabSwap,
name: ETabSwapRoutes.TabSwap,
component: Swap,
translationId: 'title__swap',
},
],
},
{
name: TabRoutes.Me,
name: ETabRoutes.Me,
tabBarIcon: (focused?: boolean) =>
focused ? 'EmailSolid' : 'EmailOutline',
translationId: 'title__me',
freezeOnBlur: true,
children: [
{
name: TabMeRoutes.TabMe,
name: ETabMeRoutes.TabMe,
component: TabMe,
translationId: 'title__me',
},
],
},
{
name: TabRoutes.Developer,
name: ETabRoutes.Developer,
tabBarIcon: (focused?: boolean) =>
focused ? 'CodeBracketsSolid' : 'CodeBracketsOutline',
translationId: 'form__dev_mode',
@@ -80,22 +81,23 @@ const config: TabNavigatorConfig<TabRoutes>[] = [
// disable: process.env.NODE_ENV === 'production',
children: [
{
name: TabDeveloperRoutes.TabDeveloper,
name: ETabDeveloperRoutes.TabDeveloper,
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
component: require('./Developer/TabDeveloper').default,
translationId: 'form__dev_mode',
},
...galleryScreenList,
],
},
];
const extraConfig: ITabNavigatorExtraConfig<TabRoutes> | undefined =
const extraConfig: ITabNavigatorExtraConfig<ETabRoutes> | undefined =
platformEnv.isDesktop
? {
name: TabRoutes.WebViewTab,
name: ETabRoutes.WebViewTab,
children: [
{
name: WebViewRoutes.WebView,
name: EWebViewRoutes.WebView,
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
component: require('./WebView/WebView').default,
headerShown: false,
@@ -106,6 +108,6 @@ const extraConfig: ITabNavigatorExtraConfig<TabRoutes> | undefined =
export default function TabNavigator() {
return (
<TabStackNavigator<TabRoutes> config={config} extraConfig={extraConfig} />
<TabStackNavigator<ETabRoutes> config={config} extraConfig={extraConfig} />
);
}

View File

@@ -1,7 +1,7 @@
export enum WebViewRoutes {
export enum EWebViewRoutes {
WebView = 'WebView',
}
export type WebViewParamList = {
[WebViewRoutes.WebView]: undefined;
export type IWebViewParamList = {
[EWebViewRoutes.WebView]: undefined;
};

View File

@@ -6,7 +6,7 @@ import type { ISimpleSearchHistoryToken } from '@onekeyhq/engine/src/dbs/simple/
import { EMarketCellData } from '../../views/Market/config';
import type { TokenChartData } from './tokens';
import type { TabRoutes } from '../../routes/routesEnum';
import type { ETabRoutes } from '../../routes/routesEnum';
import type { Token } from '../typings';
import type { PayloadAction } from '@reduxjs/toolkit';
@@ -166,7 +166,7 @@ type SearchTokenPayloadAction = {
coingeckoIds: CoingeckoId[];
};
export type MarketTopTabName = TabRoutes.Market | TabRoutes.Swap;
export type MarketTopTabName = ETabRoutes.Market | ETabRoutes.Swap;
export type MarketInitialState = {
selectedCategoryId?: CategoryId;

View File

@@ -1,6 +1,6 @@
import { createSlice } from '@reduxjs/toolkit';
import type { HomePageTabsEnum } from '../../views/Tab/Home/HomePageTabs/types';
import type { EHomePageTabsEnum } from '../../views/Tab/Home/HomePageTabs/types';
import type { PayloadAction } from '@reduxjs/toolkit';
export type IRpcStatus =
@@ -19,7 +19,7 @@ export type StatusState = {
authenticationType?: 'FINGERPRINT' | 'FACIAL';
hideAddressBookAttention?: boolean;
homeTabViewActive?: {
activeTab?: HomePageTabsEnum;
activeTab?: EHomePageTabsEnum;
disUpdate?: boolean;
};
swapPopoverShown?: boolean;

View File

@@ -3,11 +3,11 @@ import natsort from 'natsort';
import { FlatList } from 'react-native';
import { ListItem, Screen } from '@onekeyhq/components';
import { GalleryRoutes } from '@onekeyhq/kit/src/routes/Gallery/routes';
import { EGalleryRoutes } from '@onekeyhq/kit/src/routes/Root/Tab/Developer/Gallery/routes';
const Index = () => {
const navigation = useNavigation();
const componentsRoute = Object.values(GalleryRoutes)
const componentsRoute = Object.values(EGalleryRoutes)
.filter((item) => item.startsWith('component'))
.sort((a, b) => natsort({ insensitive: true })(a, b));

View File

@@ -16,7 +16,7 @@ import {
import type { IDialogProps } from '@onekeyhq/components/src/Dialog/type';
import type { IModalNavigationProp } from '@onekeyhq/components/src/Navigation';
import { GalleryRoutes } from '../../../routes/Gallery/routes';
import { EGalleryRoutes } from '../../../routes/Root/Tab/Developer/Gallery/routes';
import { Layout } from './utils/Layout';
@@ -109,7 +109,7 @@ function ContentA({ index }: { index: number }) {
const DialogNavigatorDemo = () => {
const navigation = useNavigation<
IModalNavigationProp<{
[GalleryRoutes.Components]: undefined;
[EGalleryRoutes.Components]: undefined;
}>
>();
return (
@@ -127,7 +127,7 @@ const DialogNavigatorDemo = () => {
title: 'Toaster is always on top',
duration: 3,
});
navigation.push(GalleryRoutes.Components);
navigation.push(EGalleryRoutes.Components);
}, 1500);
}}
>

View File

@@ -1,44 +1,23 @@
import { useEffect } from 'react';
import { Platform } from 'react-native';
import KeyboardManager from 'react-native-keyboard-manager';
import type { IRootStackNavigatorConfig } from '@onekeyhq/components/src/Navigation/Navigator';
import { RootStackNavigator } from '@onekeyhq/components/src/Navigation/Navigator';
import DemoModalStackScreen from './Modal';
import { DemoRootRoutes } from './Routes';
import { EDemoRootRoutes } from './Routes';
import Tab from './Tab/DemoTabNavigator';
const rootConfig: IRootStackNavigatorConfig<DemoRootRoutes, any>[] = [
const rootConfig: IRootStackNavigatorConfig<EDemoRootRoutes, any>[] = [
{
name: DemoRootRoutes.Main,
name: EDemoRootRoutes.Main,
component: Tab,
initialRoute: true,
},
{
name: DemoRootRoutes.Modal,
name: EDemoRootRoutes.Modal,
component: DemoModalStackScreen,
type: 'modal',
},
];
export const DemoRootApp = () => {
useEffect(() => {
if (Platform.OS === 'ios') {
KeyboardManager.setEnable(true);
KeyboardManager.setEnableDebugging(false);
KeyboardManager.setKeyboardDistanceFromTextField(10);
KeyboardManager.setLayoutIfNeededOnUpdate(true);
KeyboardManager.setEnableAutoToolbar(true);
// KeyboardManager.setToolbarDoneBarButtonItemText(
// intl.formatMessage({ id: 'action__done' }),
// );
KeyboardManager.setToolbarPreviousNextButtonEnable(false);
KeyboardManager.setKeyboardAppearance('default');
KeyboardManager.setShouldPlayInputClicks(true);
}
}, []);
return <RootStackNavigator<DemoRootRoutes, any> config={rootConfig} />;
};
export const DemoRootApp = () => (
<RootStackNavigator<EDemoRootRoutes, any> config={rootConfig} />
);

View File

@@ -10,13 +10,13 @@ import { NavigationFocusTools } from '../../utils/NavigationTools';
import { FreezeProbe } from '../../utils/RenderTools';
import useDemoAppNavigation from '../useDemoAppNavigation';
import { DemoCoverageModalRoutes, RootModalRoutes } from './Routes';
import { EDemoCoverageModalRoutes, ERootModalRoutes } from './Routes';
import type { DemoCoverageModalParamList } from './Routes';
import type { IDemoCoverageModalParamList } from './Routes';
function DemoCoverageModal() {
const navigation =
useDemoAppNavigation<IModalNavigationProp<DemoCoverageModalParamList>>();
useDemoAppNavigation<IModalNavigationProp<IDemoCoverageModalParamList>>();
return (
<Layout
@@ -33,8 +33,8 @@ function DemoCoverageModal() {
element: (
<Button
onPress={() => {
navigation.pushModal(RootModalRoutes.DemoCoverageModal, {
screen: DemoCoverageModalRoutes.DemoCoverageDialogModal,
navigation.pushModal(ERootModalRoutes.DemoCoverageModal, {
screen: EDemoCoverageModalRoutes.DemoCoverageDialogModal,
});
}}
>
@@ -58,7 +58,7 @@ function DemoCoverageModal() {
const ControlledDialogByButton = () => {
const navigation =
useDemoAppNavigation<IModalNavigationProp<DemoCoverageModalParamList>>();
useDemoAppNavigation<IModalNavigationProp<IDemoCoverageModalParamList>>();
const [isOpen, changeIsOpen] = useState(false);
return useMemo(
@@ -74,7 +74,7 @@ const ControlledDialogByButton = () => {
changeIsOpen(false);
}}
onConfirm={() => {
navigation.pushModal(RootModalRoutes.DemoLockedModal);
navigation.pushModal(ERootModalRoutes.DemoLockedModal);
changeIsOpen(false);
}}
/>
@@ -86,7 +86,7 @@ const ControlledDialogByButton = () => {
function DemoCoverageDialogModal() {
const navigation =
useDemoAppNavigation<IModalNavigationProp<DemoCoverageModalParamList>>();
useDemoAppNavigation<IModalNavigationProp<IDemoCoverageModalParamList>>();
return (
<Layout
@@ -100,8 +100,8 @@ function DemoCoverageDialogModal() {
<Button
variant="primary"
onPress={() => {
navigation.pushModal(RootModalRoutes.DemoCoverageModal, {
screen: DemoCoverageModalRoutes.DemoCoverageModalModal,
navigation.pushModal(ERootModalRoutes.DemoCoverageModal, {
screen: EDemoCoverageModalRoutes.DemoCoverageModalModal,
});
}}
>
@@ -137,7 +137,7 @@ function DemoCoverageDialogModal() {
description:
'通过 Api 打开的, 点击确定按钮会关闭 Dialog 打开一个 Modal',
onConfirm() {
navigation.pushModal(RootModalRoutes.DemoLockedModal);
navigation.pushModal(ERootModalRoutes.DemoLockedModal);
return Promise.resolve(true);
},
})
@@ -163,13 +163,13 @@ function DemoCoverageDialogModal() {
function DemoCoverageModalModal() {
const navigation =
useDemoAppNavigation<IModalNavigationProp<DemoCoverageModalParamList>>();
useDemoAppNavigation<IModalNavigationProp<IDemoCoverageModalParamList>>();
return (
<Layout
description="这是一个测试 Modal 覆盖的演示"
suggestions={[
'直接通过 navigation.pushModal(RootModalRoutes.DemoLockedModal) 跳转即可',
'直接通过 navigation.pushModal(ERootModalRoutes.DemoLockedModal) 跳转即可',
]}
boundaryConditions={[]}
elements={[
@@ -179,7 +179,7 @@ function DemoCoverageModalModal() {
<Button
variant="primary"
onPress={() => {
navigation.pushModal(RootModalRoutes.DemoLockedModal);
navigation.pushModal(ERootModalRoutes.DemoLockedModal);
}}
>
@@ -232,21 +232,21 @@ function DemoCoverageModalModal() {
}
export const CoverageModalStack: IModalFlowNavigatorConfig<
DemoCoverageModalRoutes,
DemoCoverageModalParamList
EDemoCoverageModalRoutes,
IDemoCoverageModalParamList
>[] = [
{
name: DemoCoverageModalRoutes.DemoCoverageModal,
name: EDemoCoverageModalRoutes.DemoCoverageModal,
component: DemoCoverageModal,
translationId: 'Coverage Modal Demo',
},
{
name: DemoCoverageModalRoutes.DemoCoverageDialogModal,
name: EDemoCoverageModalRoutes.DemoCoverageDialogModal,
component: DemoCoverageDialogModal,
translationId: 'Coverage Dialog Modal',
},
{
name: DemoCoverageModalRoutes.DemoCoverageModalModal,
name: EDemoCoverageModalRoutes.DemoCoverageModalModal,
component: DemoCoverageModalModal,
translationId: 'Coverage Modal Modal',
},

View File

@@ -13,15 +13,15 @@ import IconGallery from '../../Icon';
import { Layout } from '../../utils/Layout';
import { NavigationFocusTools } from '../../utils/NavigationTools';
import { FreezeProbe } from '../../utils/RenderTools';
import { DemoRootRoutes } from '../Routes';
import { EDemoRootRoutes } from '../Routes';
import { DemoCreateModalRoutes, RootModalRoutes } from './Routes';
import { EDemoCreateModalRoutes, ERootModalRoutes } from './Routes';
import type { DemoCreateModalParamList } from './Routes';
import type { IDemoCreateModalParamList } from './Routes';
function DemoCreateViewModal({
navigation,
}: IModalScreenProps<DemoCreateModalParamList>) {
}: IModalScreenProps<IDemoCreateModalParamList>) {
useLayoutEffect(() => {
navigation.setOptions({
headerSearchBarOptions: {
@@ -61,7 +61,7 @@ function DemoCreateViewModal({
variant="primary"
onPress={() => {
navigation.navigate(
DemoCreateModalRoutes.DemoCreateSearchModal,
EDemoCreateModalRoutes.DemoCreateSearchModal,
{
question: '你好',
},
@@ -93,7 +93,7 @@ function DemoCreateViewModal({
function DemoCreateSearchModal({
navigation,
}: IModalScreenProps<DemoCreateModalParamList>) {
}: IModalScreenProps<IDemoCreateModalParamList>) {
useLayoutEffect(() => {
navigation.setOptions({
headerSearchBarOptions: {
@@ -125,7 +125,7 @@ function DemoCreateSearchModal({
variant="primary"
onPress={() => {
navigation.navigate(
DemoCreateModalRoutes.DemoCreateOptionsModal,
EDemoCreateModalRoutes.DemoCreateOptionsModal,
{
question: '你好',
},
@@ -152,7 +152,7 @@ function DemoCreateSearchModal({
function DemoCreateOptionsModal({
navigation,
}: IModalScreenProps<DemoCreateModalParamList>) {
}: IModalScreenProps<IDemoCreateModalParamList>) {
useLayoutEffect(() => {
navigation.setOptions({
headerSearchBarOptions: {
@@ -187,8 +187,8 @@ function DemoCreateOptionsModal({
variant="primary"
onPress={() => {
// @ts-expect-error
navigation.navigate(DemoRootRoutes.Modal, {
screen: RootModalRoutes.DemoLockedModal,
navigation.navigate(EDemoRootRoutes.Modal, {
screen: ERootModalRoutes.DemoLockedModal,
});
}}
>
@@ -227,26 +227,26 @@ function DemoCreateOptionsModal({
}
export const CreateModalStack: IModalFlowNavigatorConfig<
DemoCreateModalRoutes,
DemoCreateModalParamList
EDemoCreateModalRoutes,
IDemoCreateModalParamList
>[] = [
{
name: DemoCreateModalRoutes.DemoCreateModal,
name: EDemoCreateModalRoutes.DemoCreateModal,
component: DemoCreateViewModal,
translationId: 'Modal Demo',
},
{
name: DemoCreateModalRoutes.DemoCreateSearchModal,
name: EDemoCreateModalRoutes.DemoCreateSearchModal,
component: DemoCreateSearchModal,
translationId: 'Search Modal',
},
{
name: DemoCreateModalRoutes.DemoCreateOptionsModal,
name: EDemoCreateModalRoutes.DemoCreateOptionsModal,
component: DemoCreateOptionsModal,
translationId: 'Options Demo Modal',
},
{
name: DemoCreateModalRoutes.DemoBigListModal,
name: EDemoCreateModalRoutes.DemoBigListModal,
component: IconGallery,
translationId: 'Big List Demo Modal',
},

View File

@@ -10,9 +10,9 @@ import { NavigationFocusTools } from '../../utils/NavigationTools';
import { FreezeProbe } from '../../utils/RenderTools';
import useDemoAppNavigation from '../useDemoAppNavigation';
import { DemoLockedModalRoutes, RootModalRoutes } from './Routes';
import { EDemoLockedModalRoutes, ERootModalRoutes } from './Routes';
import type { DemoLockedModalParamList } from './Routes';
import type { IDemoLockedModalParamList } from './Routes';
const DemoLockedViewModal = () => {
const navigation = useDemoAppNavigation();
@@ -40,8 +40,8 @@ const DemoLockedViewModal = () => {
<Button
variant="primary"
onPress={() => {
navigation.pushModal(RootModalRoutes.DemoLockedModal, {
screen: DemoLockedModalRoutes.DemoConfigLockedModal,
navigation.pushModal(ERootModalRoutes.DemoLockedModal, {
screen: EDemoLockedModalRoutes.DemoConfigLockedModal,
});
}}
>
@@ -65,7 +65,7 @@ const DemoLockedViewModal = () => {
const DemoConfigLockedViewModal = () => {
const navigation =
useDemoAppNavigation<IModalNavigationProp<DemoLockedModalParamList>>();
useDemoAppNavigation<IModalNavigationProp<IDemoLockedModalParamList>>();
const headerRightCall = useCallback(
() => <HeaderIconButton icon="AnonymousHidden2Outline" />,
@@ -98,8 +98,8 @@ const DemoConfigLockedViewModal = () => {
<Button
variant="primary"
onPress={() => {
navigation.pushModal(RootModalRoutes.DemoLockedModal, {
screen: DemoLockedModalRoutes.DemoManualLockedViewModal,
navigation.pushModal(ERootModalRoutes.DemoLockedModal, {
screen: EDemoLockedModalRoutes.DemoManualLockedViewModal,
});
}}
>
@@ -138,7 +138,7 @@ const DemoConfigLockedViewModal = () => {
const DemoManualLockedViewModal = () => {
const navigation =
useDemoAppNavigation<IModalNavigationProp<DemoLockedModalParamList>>();
useDemoAppNavigation<IModalNavigationProp<IDemoLockedModalParamList>>();
const headerRightCall = useCallback(
() => <HeaderIconButton icon="AnonymousHidden2Outline" />,
@@ -171,8 +171,9 @@ const DemoManualLockedViewModal = () => {
<Button
variant="primary"
onPress={() => {
navigation.pushModal(RootModalRoutes.DemoLockedModal, {
screen: DemoLockedModalRoutes.DemoRepeatManualLockedViewModal,
navigation.pushModal(ERootModalRoutes.DemoLockedModal, {
screen:
EDemoLockedModalRoutes.DemoRepeatManualLockedViewModal,
});
}}
>
@@ -226,7 +227,7 @@ const DemoManualLockedViewModal = () => {
const DemoRepeatManualLockedViewModal = () => {
const navigation =
useDemoAppNavigation<IModalNavigationProp<DemoLockedModalParamList>>();
useDemoAppNavigation<IModalNavigationProp<IDemoLockedModalParamList>>();
const [locked, setLocked] = useState(true);
const headerRightCall = useCallback(
@@ -289,29 +290,29 @@ const DemoRepeatManualLockedViewModal = () => {
};
export const LockedModalStack: IModalFlowNavigatorConfig<
DemoLockedModalRoutes,
DemoLockedModalParamList
EDemoLockedModalRoutes,
IDemoLockedModalParamList
>[] = [
{
name: DemoLockedModalRoutes.DemoLockedModal,
name: EDemoLockedModalRoutes.DemoLockedModal,
component: DemoLockedViewModal,
translationId: 'Locked Modal Demo',
},
{
name: DemoLockedModalRoutes.DemoConfigLockedModal,
name: EDemoLockedModalRoutes.DemoConfigLockedModal,
component: DemoConfigLockedViewModal,
translationId: 'Config Locked Modal',
allowDisableClose: true,
disableClose: true,
},
{
name: DemoLockedModalRoutes.DemoManualLockedViewModal,
name: EDemoLockedModalRoutes.DemoManualLockedViewModal,
component: DemoManualLockedViewModal,
translationId: 'Manual Locked Modal',
allowDisableClose: true,
},
{
name: DemoLockedModalRoutes.DemoRepeatManualLockedViewModal,
name: EDemoLockedModalRoutes.DemoRepeatManualLockedViewModal,
component: DemoRepeatManualLockedViewModal,
translationId: 'Repeat Manual Locked Modal',
allowDisableClose: true,

View File

@@ -1,51 +1,51 @@
export enum RootModalRoutes {
export enum ERootModalRoutes {
DemoCreateModal = 'DemoCreateModalStack',
DemoLockedModal = 'DemoLockedModalStack',
DemoCoverageModal = 'DemoCoverageModalStack',
}
export type DemoRootModalParamList = {
[RootModalRoutes.DemoCreateModal]: DemoCreateModalParamList;
[RootModalRoutes.DemoLockedModal]: DemoLockedModalParamList;
[RootModalRoutes.DemoCoverageModal]: DemoCoverageModalParamList;
export type IDemoRootModalParamList = {
[ERootModalRoutes.DemoCreateModal]: IDemoCreateModalParamList;
[ERootModalRoutes.DemoLockedModal]: IDemoLockedModalParamList;
[ERootModalRoutes.DemoCoverageModal]: IDemoCoverageModalParamList;
};
export enum DemoCreateModalRoutes {
export enum EDemoCreateModalRoutes {
DemoCreateModal = 'DemoCreateModal',
DemoCreateSearchModal = 'DemoCreateSearchModal',
DemoCreateOptionsModal = 'DemoCreateOptionsModal',
DemoBigListModal = 'DemoBigListModal',
}
export type DemoCreateModalParamList = {
[DemoCreateModalRoutes.DemoCreateModal]: { question: string };
[DemoCreateModalRoutes.DemoCreateSearchModal]: { question: string };
[DemoCreateModalRoutes.DemoCreateOptionsModal]: { question: string };
[DemoCreateModalRoutes.DemoBigListModal]: undefined;
export type IDemoCreateModalParamList = {
[EDemoCreateModalRoutes.DemoCreateModal]: { question: string };
[EDemoCreateModalRoutes.DemoCreateSearchModal]: { question: string };
[EDemoCreateModalRoutes.DemoCreateOptionsModal]: { question: string };
[EDemoCreateModalRoutes.DemoBigListModal]: undefined;
};
export enum DemoLockedModalRoutes {
export enum EDemoLockedModalRoutes {
DemoLockedModal = 'DemoLockedModal',
DemoConfigLockedModal = 'DemoConfigLockedModal',
DemoManualLockedViewModal = 'DemoManualLockedViewModal',
DemoRepeatManualLockedViewModal = 'DemoRepeatManualLockedViewModal',
}
export type DemoLockedModalParamList = {
[DemoLockedModalRoutes.DemoLockedModal]: undefined;
[DemoLockedModalRoutes.DemoConfigLockedModal]: undefined;
[DemoLockedModalRoutes.DemoManualLockedViewModal]: undefined;
[DemoLockedModalRoutes.DemoRepeatManualLockedViewModal]: undefined;
export type IDemoLockedModalParamList = {
[EDemoLockedModalRoutes.DemoLockedModal]: undefined;
[EDemoLockedModalRoutes.DemoConfigLockedModal]: undefined;
[EDemoLockedModalRoutes.DemoManualLockedViewModal]: undefined;
[EDemoLockedModalRoutes.DemoRepeatManualLockedViewModal]: undefined;
};
export enum DemoCoverageModalRoutes {
export enum EDemoCoverageModalRoutes {
DemoCoverageModal = 'DemoCoverageModal',
DemoCoverageDialogModal = 'DemoCoverageDialogModal',
DemoCoverageModalModal = 'DemoCoverageModalModal',
}
export type DemoCoverageModalParamList = {
[DemoCoverageModalRoutes.DemoCoverageModal]: undefined;
[DemoCoverageModalRoutes.DemoCoverageDialogModal]: undefined;
[DemoCoverageModalRoutes.DemoCoverageModalModal]: undefined;
export type IDemoCoverageModalParamList = {
[EDemoCoverageModalRoutes.DemoCoverageModal]: undefined;
[EDemoCoverageModalRoutes.DemoCoverageDialogModal]: undefined;
[EDemoCoverageModalRoutes.DemoCoverageModalModal]: undefined;
};

View File

@@ -4,23 +4,25 @@ import { RootModalNavigator } from '@onekeyhq/components/src/Navigation/Navigato
import { CoverageModalStack } from './DemoCoverageModal';
import { CreateModalStack } from './DemoCreateModal';
import { LockedModalStack } from './DemoLockedModal';
import { RootModalRoutes } from './Routes';
import { ERootModalRoutes } from './Routes';
const modalStackScreenList: IModalRootNavigatorConfig<RootModalRoutes>[] = [
const modalGalleryScreenList: IModalRootNavigatorConfig<ERootModalRoutes>[] = [
{
name: RootModalRoutes.DemoCreateModal,
name: ERootModalRoutes.DemoCreateModal,
children: CreateModalStack,
},
{
name: RootModalRoutes.DemoLockedModal,
name: ERootModalRoutes.DemoLockedModal,
children: LockedModalStack,
},
{
name: RootModalRoutes.DemoCoverageModal,
name: ERootModalRoutes.DemoCoverageModal,
children: CoverageModalStack,
},
];
export default function DemoModalStackScreen() {
return <RootModalNavigator<RootModalRoutes> config={modalStackScreenList} />;
return (
<RootModalNavigator<ERootModalRoutes> config={modalGalleryScreenList} />
);
}

View File

@@ -1,9 +1,9 @@
export enum DemoRootRoutes {
export enum EDemoRootRoutes {
Main = 'main',
Modal = 'modal',
}
export enum DemoMainRoutes {
export enum EDemoMainRoutes {
Tab = 'tab',
}

View File

@@ -4,11 +4,11 @@ import type { ITabNavigatorConfig } from '@onekeyhq/components/src/Navigation/Na
import { TabStackNavigator } from '@onekeyhq/components/src/Navigation/Navigator';
import {
DemoDeveloperTabRoutes,
DemoHomeTabRoutes,
DemoMeTabRoutes,
DemoTabRoutes,
DemoTabsTabRoutes,
EDemoDeveloperTabRoutes,
EDemoHomeTabRoutes,
EDemoMeTabRoutes,
EDemoTabRoutes,
EDemoTabsTabRoutes,
} from './Routes';
import DemoRootDeveloper from './View/DemoRootDeveloper';
import DemoRootDeveloperOptions from './View/DemoRootDeveloperOptions';
@@ -18,28 +18,28 @@ import DemoRootHomeSearch from './View/DemoRootHomeSearch';
import DemoRootMe from './View/DemoRootMe';
import DemoRootTabs from './View/DemoRootTabs';
const config: ITabNavigatorConfig<DemoTabRoutes>[] = [
const config: ITabNavigatorConfig<EDemoTabRoutes>[] = [
{
name: DemoTabRoutes.Home,
name: EDemoTabRoutes.Home,
tabBarIcon: (focused?: boolean) =>
focused ? 'CreditCardSolid' : 'CreditCardOutline',
translationId: 'wallet__wallet',
freezeOnBlur: true,
children: [
{
name: DemoHomeTabRoutes.DemoRootHome,
name: EDemoHomeTabRoutes.DemoRootHome,
component: DemoRootHome,
// @ts-expect-error
translationId: 'Home',
},
{
name: DemoHomeTabRoutes.DemoRootHomeSearch,
name: EDemoHomeTabRoutes.DemoRootHomeSearch,
component: DemoRootHomeSearch,
// @ts-expect-error
translationId: 'RootHomeSearch',
},
{
name: DemoHomeTabRoutes.DemoRootHomeOptions,
name: EDemoHomeTabRoutes.DemoRootHomeOptions,
component: DemoRootHomeOptions,
// @ts-expect-error
translationId: 'RootHomeOptions',
@@ -47,48 +47,48 @@ const config: ITabNavigatorConfig<DemoTabRoutes>[] = [
],
},
{
name: DemoTabRoutes.Me,
name: EDemoTabRoutes.Me,
tabBarIcon: (focused?: boolean) =>
focused ? 'EmailSolid' : 'EmailOutline',
translationId: 'msg__mine',
freezeOnBlur: true,
children: [
{
name: DemoMeTabRoutes.DemoRootMe,
name: EDemoMeTabRoutes.DemoRootMe,
component: DemoRootMe,
translationId: 'msg__mine',
},
],
},
{
name: DemoTabRoutes.Tabs,
name: EDemoTabRoutes.Tabs,
tabBarIcon: (focused?: boolean) =>
focused ? 'ChatGptSolid' : 'ChatGptOutline',
translationId: 'title__str_tabs',
freezeOnBlur: true,
children: [
{
name: DemoTabsTabRoutes.DemoRootTabs,
name: EDemoTabsTabRoutes.DemoRootTabs,
component: DemoRootTabs,
translationId: 'title__str_tabs',
},
],
},
{
name: DemoTabRoutes.Developer,
name: EDemoTabRoutes.Developer,
tabBarIcon: (focused?: boolean) =>
focused ? 'CodeBracketsSolid' : 'CodeBracketsOutline',
translationId: 'form__dev_mode',
freezeOnBlur: true,
children: [
{
name: DemoDeveloperTabRoutes.DemoRootDeveloper,
name: EDemoDeveloperTabRoutes.DemoRootDeveloper,
component: DemoRootDeveloper,
// @ts-expect-error
translationId: 'Developer',
},
{
name: DemoDeveloperTabRoutes.DemoRootDeveloperOptions,
name: EDemoDeveloperTabRoutes.DemoRootDeveloperOptions,
component: DemoRootDeveloperOptions,
// @ts-expect-error
translationId: 'RootDeveloperOptions',
@@ -98,7 +98,7 @@ const config: ITabNavigatorConfig<DemoTabRoutes>[] = [
];
function DemoTabNavigator() {
return <TabStackNavigator<DemoTabRoutes> config={config} />;
return <TabStackNavigator<EDemoTabRoutes> config={config} />;
}
export default DemoTabNavigator;

View File

@@ -1,35 +1,35 @@
import type {
DemoDeveloperTabRoutes,
DemoHomeTabRoutes,
DemoMeTabRoutes,
DemoTabRoutes,
DemoTabsTabRoutes,
EDemoDeveloperTabRoutes,
EDemoHomeTabRoutes,
EDemoMeTabRoutes,
EDemoTabRoutes,
EDemoTabsTabRoutes,
} from './Routes';
export type DemoHomeTabParamList = {
[DemoHomeTabRoutes.DemoRootHome]: undefined;
[DemoHomeTabRoutes.DemoRootHomeSearch]: undefined;
[DemoHomeTabRoutes.DemoRootHomeOptions]: undefined;
export type IDemoHomeTabParamList = {
[EDemoHomeTabRoutes.DemoRootHome]: undefined;
[EDemoHomeTabRoutes.DemoRootHomeSearch]: undefined;
[EDemoHomeTabRoutes.DemoRootHomeOptions]: undefined;
};
export type DemoDeveloperTabParamList = {
[DemoDeveloperTabRoutes.DemoRootDeveloper]: undefined;
[DemoDeveloperTabRoutes.DemoRootDeveloperOptions]: {
export type IDemoDeveloperTabParamList = {
[EDemoDeveloperTabRoutes.DemoRootDeveloper]: undefined;
[EDemoDeveloperTabRoutes.DemoRootDeveloperOptions]: {
from: string;
};
};
export type DemoMeTabParamList = {
[DemoMeTabRoutes.DemoRootMe]: undefined;
export type IDemoMeTabParamList = {
[EDemoMeTabRoutes.DemoRootMe]: undefined;
};
export type DemoTabsTabParamList = {
[DemoTabsTabRoutes.DemoRootTabs]: undefined;
export type IDemoTabsTabParamList = {
[EDemoTabsTabRoutes.DemoRootTabs]: undefined;
};
export type TabStackParamList = {
[DemoTabRoutes.Home]: DemoHomeTabParamList;
[DemoTabRoutes.Me]: DemoMeTabParamList;
[DemoTabRoutes.Tabs]: DemoTabsTabParamList;
[DemoTabRoutes.Developer]: DemoDeveloperTabParamList;
export type ITabStackParamList = {
[EDemoTabRoutes.Home]: IDemoHomeTabParamList;
[EDemoTabRoutes.Me]: IDemoMeTabParamList;
[EDemoTabRoutes.Tabs]: IDemoTabsTabParamList;
[EDemoTabRoutes.Developer]: IDemoDeveloperTabParamList;
};

View File

@@ -1,25 +1,25 @@
export enum DemoTabRoutes {
export enum EDemoTabRoutes {
Home = 'home',
Me = 'me',
Tabs = 'tabs',
Developer = 'developer',
}
export enum DemoHomeTabRoutes {
export enum EDemoHomeTabRoutes {
DemoRootHome = 'DemoRootHome',
DemoRootHomeSearch = 'DemoRootHomeSearch',
DemoRootHomeOptions = 'DemoRootHomeOptions',
}
export enum DemoDeveloperTabRoutes {
export enum EDemoDeveloperTabRoutes {
DemoRootDeveloper = 'DemoRootDeveloper',
DemoRootDeveloperOptions = 'DemoRootDeveloperOptions',
}
export enum DemoMeTabRoutes {
export enum EDemoMeTabRoutes {
DemoRootMe = 'DemoRootMe',
}
export enum DemoTabsTabRoutes {
export enum EDemoTabsTabRoutes {
DemoRootTabs = 'DemoRootTabs',
}

View File

@@ -5,9 +5,9 @@ import { Button, Stack } from '@onekeyhq/components';
import { Layout } from '../../../utils/Layout';
import { NavigationFocusTools } from '../../../utils/NavigationTools';
import { FreezeProbe } from '../../../utils/RenderTools';
import { DemoCreateModalRoutes, RootModalRoutes } from '../../Modal/Routes';
import { EDemoCreateModalRoutes, ERootModalRoutes } from '../../Modal/Routes';
import useDemoAppNavigation from '../../useDemoAppNavigation';
import { DemoDeveloperTabRoutes } from '../Routes';
import { EDemoDeveloperTabRoutes } from '../Routes';
const DemoRootDeveloper = () => {
const navigation = useDemoAppNavigation();
@@ -29,7 +29,7 @@ const DemoRootDeveloper = () => {
variant="primary"
onPress={() => {
navigation.push(
DemoDeveloperTabRoutes.DemoRootDeveloperOptions,
EDemoDeveloperTabRoutes.DemoRootDeveloperOptions,
{
from: '来自 Developer Tab 页面的跳转',
},
@@ -46,8 +46,8 @@ const DemoRootDeveloper = () => {
<Button
variant="primary"
onPress={() => {
navigation.pushModal(RootModalRoutes.DemoCreateModal, {
screen: DemoCreateModalRoutes.DemoCreateModal,
navigation.pushModal(ERootModalRoutes.DemoCreateModal, {
screen: EDemoCreateModalRoutes.DemoCreateModal,
params: {
question: '你好',
},
@@ -64,7 +64,7 @@ const DemoRootDeveloper = () => {
<Button
variant="primary"
onPress={() => {
navigation.pushModal(RootModalRoutes.DemoLockedModal);
navigation.pushModal(ERootModalRoutes.DemoLockedModal);
}}
>
Modal Demo
@@ -77,8 +77,8 @@ const DemoRootDeveloper = () => {
<Button
variant="primary"
onPress={() => {
navigation.pushModal(RootModalRoutes.DemoCreateModal, {
screen: DemoCreateModalRoutes.DemoBigListModal,
navigation.pushModal(ERootModalRoutes.DemoCreateModal, {
screen: EDemoCreateModalRoutes.DemoBigListModal,
});
}}
>
@@ -92,7 +92,7 @@ const DemoRootDeveloper = () => {
<Button
variant="primary"
onPress={() => {
navigation.pushModal(RootModalRoutes.DemoCoverageModal);
navigation.pushModal(ERootModalRoutes.DemoCoverageModal);
}}
>
Modal Demo

View File

@@ -7,15 +7,15 @@ import { Layout } from '../../../utils/Layout';
import { NavigationFocusTools } from '../../../utils/NavigationTools';
import { FreezeProbe } from '../../../utils/RenderTools';
import useDemoAppNavigation from '../../useDemoAppNavigation';
import { DemoDeveloperTabRoutes } from '../Routes';
import { EDemoDeveloperTabRoutes } from '../Routes';
import type { DemoDeveloperTabParamList } from '../RouteParamTypes';
import type { IDemoDeveloperTabParamList } from '../RouteParamTypes';
import type { RouteProp } from '@react-navigation/core';
const DemoRootDeveloperOptions = () => {
const navigation =
useDemoAppNavigation<IPageNavigationProp<DemoDeveloperTabParamList>>();
const route = useRoute<RouteProp<DemoDeveloperTabParamList>>();
useDemoAppNavigation<IPageNavigationProp<IDemoDeveloperTabParamList>>();
const route = useRoute<RouteProp<IDemoDeveloperTabParamList>>();
return (
<Layout
@@ -29,7 +29,7 @@ const DemoRootDeveloperOptions = () => {
<Button
variant="primary"
onPress={() => {
navigation.push(DemoDeveloperTabRoutes.DemoRootDeveloper);
navigation.push(EDemoDeveloperTabRoutes.DemoRootDeveloper);
}}
>
Dev
@@ -46,8 +46,8 @@ const DemoRootDeveloperOptions = () => {
index: 0,
routes: [
{
key: DemoDeveloperTabRoutes.DemoRootDeveloper,
name: DemoDeveloperTabRoutes.DemoRootDeveloper,
key: EDemoDeveloperTabRoutes.DemoRootDeveloper,
name: EDemoDeveloperTabRoutes.DemoRootDeveloper,
},
],
});

View File

@@ -12,9 +12,9 @@ import { Layout } from '../../../utils/Layout';
import { NavigationFocusTools } from '../../../utils/NavigationTools';
import { FreezeProbe } from '../../../utils/RenderTools';
import useDemoAppNavigation from '../../useDemoAppNavigation';
import { DemoHomeTabRoutes } from '../Routes';
import { EDemoHomeTabRoutes } from '../Routes';
import type { DemoHomeTabParamList } from '../RouteParamTypes';
import type { IDemoHomeTabParamList } from '../RouteParamTypes';
const useStorage = platformEnv.isNative
? (key: AppSettingKey, initialValue?: boolean) => {
@@ -31,7 +31,7 @@ const useStorage = platformEnv.isNative
const DemoRootHome = () => {
const navigation =
useDemoAppNavigation<IPageNavigationProp<DemoHomeTabParamList>>();
useDemoAppNavigation<IPageNavigationProp<IDemoHomeTabParamList>>();
const [rrtStatus, changeRRTStatus] = useStorage(AppSettingKey.rrt);
@@ -125,7 +125,7 @@ const DemoRootHome = () => {
<Button
variant="primary"
onPress={() => {
navigation.push(DemoHomeTabRoutes.DemoRootHomeSearch);
navigation.push(EDemoHomeTabRoutes.DemoRootHomeSearch);
}}
>
Demo

View File

@@ -10,8 +10,8 @@ import HeaderIconButton from '@onekeyhq/components/src/Navigation/Header/HeaderI
import { Layout } from '../../../utils/Layout';
import { NavigationFocusTools } from '../../../utils/NavigationTools';
import { FreezeProbe } from '../../../utils/RenderTools';
import { RootModalRoutes } from '../../Modal/Routes';
import { DemoRootRoutes } from '../../Routes';
import { ERootModalRoutes } from '../../Modal/Routes';
import { EDemoRootRoutes } from '../../Routes';
import type {
NativeSyntheticEvent,
@@ -76,8 +76,8 @@ const DemoRootHomeOptions = () => {
<Button
onPress={() => {
// @ts-expect-error
navigation.navigate(DemoRootRoutes.Modal, {
screen: RootModalRoutes.DemoLockedModal,
navigation.navigate(EDemoRootRoutes.Modal, {
screen: ERootModalRoutes.DemoLockedModal,
});
}}
>

View File

@@ -7,9 +7,9 @@ import { Layout } from '../../../utils/Layout';
import { NavigationFocusTools } from '../../../utils/NavigationTools';
import { FreezeProbe } from '../../../utils/RenderTools';
import useDemoAppNavigation from '../../useDemoAppNavigation';
import { DemoHomeTabRoutes } from '../Routes';
import { EDemoHomeTabRoutes } from '../Routes';
import type { DemoHomeTabParamList } from '../RouteParamTypes';
import type { IDemoHomeTabParamList } from '../RouteParamTypes';
import type {
NativeSyntheticEvent,
TextInputChangeEventData,
@@ -18,7 +18,7 @@ import type {
const DemoRootHomeSearch = () => {
const navigation =
useDemoAppNavigation<IPageNavigationProp<DemoHomeTabParamList>>();
useDemoAppNavigation<IPageNavigationProp<IDemoHomeTabParamList>>();
useLayoutEffect(() => {
navigation.setOptions({
@@ -63,7 +63,7 @@ const DemoRootHomeSearch = () => {
<Button
variant="primary"
onPress={() => {
navigation.push(DemoHomeTabRoutes.DemoRootHomeOptions);
navigation.push(EDemoHomeTabRoutes.DemoRootHomeOptions);
}}
>
headerRight Demo

View File

@@ -4,7 +4,7 @@ import { Layout } from '../../../utils/Layout';
import { NavigationFocusTools } from '../../../utils/NavigationTools';
import { FreezeProbe } from '../../../utils/RenderTools';
import useDemoAppNavigation from '../../useDemoAppNavigation';
import { DemoDeveloperTabRoutes, DemoTabRoutes } from '../Routes';
import { EDemoDeveloperTabRoutes, EDemoTabRoutes } from '../Routes';
const DemoRootMe = () => {
const navigation = useDemoAppNavigation();
@@ -21,7 +21,7 @@ const DemoRootMe = () => {
<Button
variant="primary"
onPress={() => {
navigation.switchTab(DemoTabRoutes.Home);
navigation.switchTab(EDemoTabRoutes.Home);
}}
>
Home
@@ -34,8 +34,8 @@ const DemoRootMe = () => {
<Button
variant="primary"
onPress={() => {
navigation.switchTab(DemoTabRoutes.Developer, {
screen: DemoDeveloperTabRoutes.DemoRootDeveloperOptions,
navigation.switchTab(EDemoTabRoutes.Developer, {
screen: EDemoDeveloperTabRoutes.DemoRootDeveloperOptions,
params: {
from: '来自 Me Tab 页面的跳转',
},

View File

@@ -8,11 +8,11 @@ import type {
IStackNavigationOptions,
} from '@onekeyhq/components/src/Navigation';
import { DemoRootRoutes } from './Routes';
import { EDemoRootRoutes } from './Routes';
import type { DemoRootModalParamList, RootModalRoutes } from './Modal/Routes';
import type { TabStackParamList } from './Tab/RouteParamTypes';
import type { DemoTabRoutes } from './Tab/Routes';
import type { ERootModalRoutes, IDemoRootModalParamList } from './Modal/Routes';
import type { ITabStackParamList } from './Tab/RouteParamTypes';
import type { EDemoTabRoutes } from './Tab/Routes';
function useDemoAppNavigation<
P extends
@@ -34,27 +34,27 @@ function useDemoAppNavigation<
}
};
const switchTab = <T extends DemoTabRoutes>(
const switchTab = <T extends EDemoTabRoutes>(
route: T,
params?: {
screen: keyof TabStackParamList[T];
params?: TabStackParamList[T][keyof TabStackParamList[T]];
screen: keyof ITabStackParamList[T];
params?: ITabStackParamList[T][keyof ITabStackParamList[T]];
},
) => {
navigation.navigate(DemoRootRoutes.Main, {
navigation.navigate(EDemoRootRoutes.Main, {
screen: route,
params,
});
};
const pushModal = <T extends RootModalRoutes>(
const pushModal = <T extends ERootModalRoutes>(
route: T,
params?: {
screen: keyof DemoRootModalParamList[T];
params?: DemoRootModalParamList[T][keyof DemoRootModalParamList[T]];
screen: keyof IDemoRootModalParamList[T];
params?: IDemoRootModalParamList[T][keyof IDemoRootModalParamList[T]];
},
) => {
navigation.navigate(DemoRootRoutes.Modal, {
navigation.navigate(EDemoRootRoutes.Modal, {
screen: route,
params,
});

View File

@@ -4,7 +4,7 @@ import { Button, IconButton, Stack } from '@onekeyhq/components';
import type { IPageNavigationProp } from '@onekeyhq/components/src/Navigation';
import useSafeAreaInsets from '@onekeyhq/components/src/Provider/hooks/useSafeAreaInsets';
import useAppNavigation from '@onekeyhq/kit/src/hooks/useAppNavigation';
import { ModalRoutes } from '@onekeyhq/kit/src/routes/Root/Modal/Routes';
import { EModalRoutes } from '@onekeyhq/kit/src/routes/Root/Modal/Routes';
import { useWebController } from '../../Controller/useWebController';
import { useWebTabs } from '../../Controller/useWebTabs';
@@ -51,7 +51,7 @@ function BrowserBottomBar({ showHome }: { showHome?: () => void }) {
/>
<Button
onPress={() =>
navigation.pushModal(ModalRoutes.DiscoverModal, {
navigation.pushModal(EModalRoutes.DiscoverModal, {
screen: DiscoverModalRoutes.MobileTabList,
})
}

View File

@@ -7,7 +7,7 @@ import type { IPageNavigationProp } from '@onekeyhq/components/src/Navigation';
// @ts-expect-error
import dAppFavicon from '@onekeyhq/kit/assets/dapp_favicon.png';
import useAppNavigation from '@onekeyhq/kit/src/hooks/useAppNavigation';
import { ModalRoutes } from '@onekeyhq/kit/src/routes/Root/Modal/Routes';
import { EModalRoutes } from '@onekeyhq/kit/src/routes/Root/Modal/Routes';
import { gotoSite } from '../../Controller/gotoSite';
import { useWebTabs } from '../../Controller/useWebTabs';
@@ -31,7 +31,7 @@ function BrowserInfoBar() {
flexDirection="row"
alignItems="center"
onPress={() => {
navigation.pushModal(ModalRoutes.DiscoverModal, {
navigation.pushModal(EModalRoutes.DiscoverModal, {
screen: DiscoverModalRoutes.SearchModal,
params: {
onSubmitContent: (text) => {

View File

@@ -2,13 +2,11 @@ import { useCallback, useMemo, useState } from 'react';
import { Button, Stack, Text } from '@onekeyhq/components';
import type { IPageNavigationProp } from '@onekeyhq/components/src/Navigation';
import { GalleryRoutes } from '@onekeyhq/kit/src/routes/Gallery/routes';
import useAppNavigation from '../../../../hooks/useAppNavigation';
import { RootRoutes } from '../../../../routes/Root/Routes';
import { TabHomeRoutes } from '../../../../routes/Root/Tab/Home/Routes';
import { ETabHomeRoutes } from '../../../../routes/Root/Tab/Home/Routes';
import type { TabHomeParamList } from '../../../../routes/Root/Tab/Home/Routes';
import type { ITabHomeParamList } from '../../../../routes/Root/Tab/Home/Routes';
// export default function HomePageHeaderView({
// switchDemoVisible,
@@ -16,7 +14,7 @@ import type { TabHomeParamList } from '../../../../routes/Root/Tab/Home/Routes';
// switchDemoVisible: () => void;
// }) {
export default function HomePageHeaderView() {
const navigation = useAppNavigation<IPageNavigationProp<TabHomeParamList>>();
const navigation = useAppNavigation<IPageNavigationProp<ITabHomeParamList>>();
const [headerHighMode, setHeaderHighMode] = useState(true);
const headerHeightCall = useCallback(() => {
@@ -28,7 +26,7 @@ export default function HomePageHeaderView() {
// }, [switchDemoVisible]);
const onNextPageCall = useCallback(() => {
navigation.push(TabHomeRoutes.TabHomeStack1);
navigation.push(ETabHomeRoutes.TabHomeStack1);
}, [navigation]);
return useMemo(
@@ -40,18 +38,6 @@ export default function HomePageHeaderView() {
<Button onPress={headerHeightCall}></Button>
{/* <Button onPress={switchDemoVisibleCall}>切换 Demo3 显示</Button> */}
<Button onPress={onNextPageCall}></Button>
<Button
onPress={() => {
navigation.push(RootRoutes.Gallery, {
screen: GalleryRoutes.Components,
params: {
ts: new Date().getTime(),
},
});
}}
>
Gallery
</Button>
</Stack>
),
[
@@ -59,7 +45,6 @@ export default function HomePageHeaderView() {
headerHeightCall,
onNextPageCall,
// switchDemoVisibleCall,
navigation,
],
);
}

View File

@@ -80,9 +80,9 @@ const ListRoute = ({
);
// const renderScene = SceneMap({
// [HomePageTabsEnum.Demo1]: FirstRoute,
// [HomePageTabsEnum.Demo2]: SecondRoute,
// [HomePageTabsEnum.Demo3]: OtherRoute,
// [EHomePageTabsEnum.Demo1]: FirstRoute,
// [EHomePageTabsEnum.Demo2]: SecondRoute,
// [EHomePageTabsEnum.Demo3]: OtherRoute,
// });
function HomePage() {

View File

@@ -1,4 +1,4 @@
export enum HomePageTabsEnum {
export enum EHomePageTabsEnum {
Demo1 = 'Demo1',
Demo2 = 'Demo2',
Demo3 = 'Demo3',

View File

@@ -1,7 +1,7 @@
// <<<<< ReferenceError: localStorage is not defined
// export { IosAuthorizationStatus } from 'expo-notifications';
export enum IosAuthorizationStatus {
export enum EIosAuthorizationStatus {
NOT_DETERMINED = 0,
DENIED = 1,
AUTHORIZED = 2,

View File

@@ -71,7 +71,7 @@ export const stopRecordingMetrics = () => {
stopLogging();
};
export type MetrixDeviceInfo = {
export type IMetrixDeviceInfo = {
commitHash: string;
brand: string;
buildNumber: string;
@@ -84,7 +84,7 @@ export type MetrixDeviceInfo = {
export const uploadMetricsInfo = async (
unitTestName: string,
password: string,
deviceInfo: MetrixDeviceInfo,
deviceInfo: IMetrixDeviceInfo,
) =>
uploadMetricsLogFile(
'https://perf.onekeytest.com/api/logs/upload',

View File

@@ -1,4 +1,4 @@
export enum ExplorerShortcutEvents {
export enum EExplorerShortcutEvents {
NewTab = 'NewTab',
NewTabAndFocus = 'NewTabAndFocus',
JumpToNextTab = 'JumpToNextTab',
@@ -10,34 +10,34 @@ export enum ExplorerShortcutEvents {
export const getShortcutsMap: (
isMac?: boolean,
) => Record<ExplorerShortcutEvents, { keys: string | null; desc: string }> = (
) => Record<EExplorerShortcutEvents, { keys: string | null; desc: string }> = (
isMac,
) => ({
[ExplorerShortcutEvents.NewTab]: {
[EExplorerShortcutEvents.NewTab]: {
keys: 'CmdOrCtrl+N',
desc: 'New Tab',
},
[ExplorerShortcutEvents.NewTabAndFocus]: {
[EExplorerShortcutEvents.NewTabAndFocus]: {
keys: 'CmdOrCtrl+T',
desc: 'New Tab',
},
[ExplorerShortcutEvents.JumpToNextTab]: {
[EExplorerShortcutEvents.JumpToNextTab]: {
keys: isMac ? 'Cmd+Alt+Right' : 'Ctrl+Tab',
desc: 'New Tab',
},
[ExplorerShortcutEvents.GoBackHistory]: {
[EExplorerShortcutEvents.GoBackHistory]: {
keys: 'Alt+Left',
desc: 'New Tab',
},
[ExplorerShortcutEvents.GoForwardHistory]: {
[EExplorerShortcutEvents.GoForwardHistory]: {
keys: 'Alt+Right',
desc: 'New Tab',
},
[ExplorerShortcutEvents.CloseTab]: {
[EExplorerShortcutEvents.CloseTab]: {
keys: 'CmdOrCtrl+W',
desc: 'Close Tab',
},
[ExplorerShortcutEvents.CloseTabOnWinOrLinux]: {
[EExplorerShortcutEvents.CloseTabOnWinOrLinux]: {
keys: isMac ? null : 'Ctrl+F4',
desc: 'Close Tab',
},