一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
66 行
2.6 KiB
TypeScript
66 行
2.6 KiB
TypeScript
import * as React from 'react';
|
|
import { Dispatch } from 'redux';
|
|
|
|
import SyncWizardDialog from '../../SyncWizard/Dialog';
|
|
import MasterPasswordDialog from '../../MasterPasswordDialog/Dialog';
|
|
import NoteLockUnlockDialog from '../../NoteLockUnlockDialog/Dialog';
|
|
import NoteLockMigrationDialog from '../../NoteLockMigrationDialog/Dialog';
|
|
import EditFolderDialog from '../../EditFolderDialog/Dialog';
|
|
import PdfViewer from '../../PdfViewer';
|
|
|
|
interface RegisteredDialogProps {
|
|
themeId: number;
|
|
key: string;
|
|
dispatch: Dispatch;
|
|
}
|
|
|
|
interface RegisteredDialog {
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Each dialog requires different customProps; the render functions intentionally spread an open shape
|
|
render: (props: RegisteredDialogProps, customProps: any)=> React.ReactNode;
|
|
}
|
|
|
|
const appDialogs: Record<string, RegisteredDialog> = {
|
|
syncWizard: {
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- See RegisteredDialog.render
|
|
render: (props: RegisteredDialogProps, customProps: any) => {
|
|
return <SyncWizardDialog key={props.key} dispatch={props.dispatch} themeId={props.themeId} {...customProps}/>;
|
|
},
|
|
},
|
|
|
|
masterPassword: {
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- See RegisteredDialog.render
|
|
render: (props: RegisteredDialogProps, customProps: any) => {
|
|
return <MasterPasswordDialog key={props.key} dispatch={props.dispatch} themeId={props.themeId} {...customProps}/>;
|
|
},
|
|
},
|
|
|
|
noteLockUnlock: {
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- See RegisteredDialog.render
|
|
render: (props: RegisteredDialogProps, customProps: any) => {
|
|
return <NoteLockUnlockDialog key={props.key} dispatch={props.dispatch} themeId={props.themeId} {...customProps}/>;
|
|
},
|
|
},
|
|
|
|
noteLockMigration: {
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- See RegisteredDialog.render
|
|
render: (props: RegisteredDialogProps, customProps: any) => {
|
|
return <NoteLockMigrationDialog key={props.key} dispatch={props.dispatch} themeId={props.themeId} {...customProps}/>;
|
|
},
|
|
},
|
|
|
|
editFolder: {
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- See RegisteredDialog.render
|
|
render: (props: RegisteredDialogProps, customProps: any) => {
|
|
return <EditFolderDialog key={props.key} dispatch={props.dispatch} themeId={props.themeId} {...customProps}/>;
|
|
},
|
|
},
|
|
pdfViewer: {
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- See RegisteredDialog.render
|
|
render: (props: RegisteredDialogProps, customProps: any) => {
|
|
return <PdfViewer key={props.key} dispatch={props.dispatch} themeId={props.themeId} {...customProps}/>;
|
|
},
|
|
},
|
|
};
|
|
|
|
export default appDialogs;
|