52 lines
1.6 KiB
TypeScript
52 lines
1.6 KiB
TypeScript
import React from 'react';
|
|
import Dialog from '@material-ui/core/Dialog';
|
|
import DialogContent from '@material-ui/core/DialogContent';
|
|
import DialogTitle from '@material-ui/core/DialogTitle';
|
|
import {DialogActionBar} from "./DialogActionBar";
|
|
import {DialogTitleAndDetails} from "./DialogTitleAndDetails";
|
|
import {makeVar} from "@apollo/client";
|
|
|
|
|
|
export interface ChangeCategoryDialogContent {
|
|
id: string
|
|
title: string,
|
|
details: string | null,
|
|
}
|
|
|
|
interface DialogChangeCategoryProps {
|
|
title: string,
|
|
confirmButtonText: string,
|
|
open: boolean,
|
|
content: ChangeCategoryDialogContent,
|
|
loading: boolean,
|
|
|
|
handleContentChange(content: ChangeCategoryDialogContent): void
|
|
|
|
handleConfirmButtonClick(): void,
|
|
|
|
handleClose(): void,
|
|
}
|
|
|
|
|
|
export default function DialogChangeCategory(props: DialogChangeCategoryProps) {
|
|
return (
|
|
<Dialog open={props.open} onClose={props.handleClose} aria-labelledby="form-dialog-title">
|
|
<DialogTitle id="form-dialog-title">{props.title}</DialogTitle>
|
|
<DialogContent>
|
|
<DialogTitleAndDetails
|
|
title={props.content.title}
|
|
details={props.content.details}
|
|
handleTitleChange={newTitle => props.handleContentChange({...props.content, title: newTitle})}
|
|
handleDetailsChange={newDetails => props.handleContentChange({...props.content, details: newDetails})}
|
|
/>
|
|
</DialogContent>
|
|
<DialogActionBar
|
|
onClose={props.handleClose}
|
|
onConfirmButtonClick={props.handleConfirmButtonClick}
|
|
confirmButtonText={props.confirmButtonText}
|
|
loading={props.loading}
|
|
/>
|
|
</Dialog>
|
|
);
|
|
}
|