export type Action = ButtonAction
export const ButtonActionTypeMap = {
navigate: {} as ButtonNavigateAction,
addData: {} as ButtonAddDataAction,
updateData: {} as ButtonUpdateDataAction,
deleteData: {} as ButtonDeleteDataAction,
searchData: {} as ButtonSearchDataAction
} as const
export type ButtonActionType = keyof typeof ButtonActionTypeMap
export type ButtonAction = {
[K in ButtonActionType]: {
type: K;
action: typeof ButtonActionTypeMap[K]
}
}[ButtonActionType];
export interface ButtonNavigateAction {
nextScreenName: string
}
export interface ButtonAddDataAction {
tableName: string,
newData: { [k: string]: string }, //key: column, value: componentName
successScreenName: string,
failScreenName: string
}
export interface ButtonUpdateDataAction {
tableName: string,
newData: { [k: string]: string },
successScreenName: string,
failScreenName: string
}
export interface ButtonDeleteDataAction {
tableName: string,
deleteData: { [key: string]: string },
successScreenName: string,
failScreenName: string
}
export interface ButtonSearchDataAction {
tableName: string,
searchData: { [k: string]: string },
targetComponentName: string,
}