mirror of
https://github.com/alexgo-io/onekey-monorepo.git
synced 2026-04-30 04:35:15 +08:00
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:
2
@types/globals.d.ts
vendored
2
@types/globals.d.ts
vendored
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
@@ -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} />;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
},
|
||||
|
||||
@@ -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 };
|
||||
};
|
||||
|
||||
@@ -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" />,
|
||||
[],
|
||||
|
||||
@@ -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} />;
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export enum RootRoutes {
|
||||
export enum ERootRoutes {
|
||||
Main = 'main',
|
||||
|
||||
Modal = 'modal',
|
||||
|
||||
106
packages/kit/src/routes/Root/Tab/Developer/Gallery/index.tsx
Normal file
106
packages/kit/src/routes/Root/Tab/Developer/Gallery/index.tsx
Normal 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,
|
||||
},
|
||||
];
|
||||
@@ -1,4 +1,4 @@
|
||||
export enum GalleryRoutes {
|
||||
export enum EGalleryRoutes {
|
||||
Components = 'components',
|
||||
ComponentTypography = 'component/typography',
|
||||
ComponentLottieView = 'component/lottieview',
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
}}
|
||||
>
|
||||
下一页
|
||||
|
||||
@@ -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);
|
||||
}}
|
||||
>
|
||||
下一页
|
||||
|
||||
@@ -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);
|
||||
}}
|
||||
>
|
||||
回首页
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export enum TabMeRoutes {
|
||||
export enum ETabMeRoutes {
|
||||
TabMe = 'TabMe',
|
||||
}
|
||||
|
||||
export type TabMeParamList = {
|
||||
[TabMeRoutes.TabMe]: undefined;
|
||||
export type ITabMeParamList = {
|
||||
[ETabMeRoutes.TabMe]: undefined;
|
||||
};
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export enum TabSwapRoutes {
|
||||
export enum ETabSwapRoutes {
|
||||
TabSwap = 'TabSwap',
|
||||
}
|
||||
|
||||
export type TabSwapParamList = {
|
||||
[TabSwapRoutes.TabSwap]: undefined;
|
||||
export type ITabSwapParamList = {
|
||||
[ETabSwapRoutes.TabSwap]: undefined;
|
||||
};
|
||||
|
||||
@@ -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} />
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export enum WebViewRoutes {
|
||||
export enum EWebViewRoutes {
|
||||
WebView = 'WebView',
|
||||
}
|
||||
|
||||
export type WebViewParamList = {
|
||||
[WebViewRoutes.WebView]: undefined;
|
||||
export type IWebViewParamList = {
|
||||
[EWebViewRoutes.WebView]: undefined;
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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));
|
||||
|
||||
|
||||
@@ -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);
|
||||
}}
|
||||
>
|
||||
|
||||
@@ -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} />
|
||||
);
|
||||
|
||||
@@ -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',
|
||||
},
|
||||
|
||||
@@ -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',
|
||||
},
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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} />
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
export enum DemoRootRoutes {
|
||||
export enum EDemoRootRoutes {
|
||||
Main = 'main',
|
||||
|
||||
Modal = 'modal',
|
||||
}
|
||||
|
||||
export enum DemoMainRoutes {
|
||||
export enum EDemoMainRoutes {
|
||||
Tab = 'tab',
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
}}
|
||||
>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 页面的跳转',
|
||||
},
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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,
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export enum HomePageTabsEnum {
|
||||
export enum EHomePageTabsEnum {
|
||||
Demo1 = 'Demo1',
|
||||
Demo2 = 'Demo2',
|
||||
Demo3 = 'Demo3',
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user