| @@ -1,25 +1,22 @@ | |||
| import { | |||
| Box, | |||
| Button, | |||
| Grid, | |||
| Stack, | |||
| Table, | |||
| TableBody, | |||
| TableCell, | |||
| TableContainer, | |||
| TableHead, | |||
| TablePagination, | |||
| TableRow, | |||
| TextField, | |||
| Typography, | |||
| } from "@mui/material"; | |||
| import { Dictionary } from "@types"; | |||
| import { | |||
| UseSummary, | |||
| getUseSummaries, | |||
| getUseSummaryYYYYMMs, | |||
| } from "api/custom/hello-techno/use-summary"; | |||
| import { PageID, TabID } from "codes/page"; | |||
| import { FormProvider, RHFTextField } from "components/hook-form"; | |||
| import { FormProvider } from "components/hook-form"; | |||
| import RHFSelect, { SelectOptionProps } from "components/hook-form/RHFSelect"; | |||
| import { TableHeadCustom } from "components/table"; | |||
| import { SearchConditionContextProvider } from "contexts/SearchConditionContext"; | |||
| @@ -30,9 +27,7 @@ import useSearchConditionContext from "hooks/useSearchConditionContext"; | |||
| import useTable, { UseTableReturn } from "hooks/useTable"; | |||
| import { useEffect, useMemo, useState } from "react"; | |||
| import { useForm } from "react-hook-form"; | |||
| import { getPath } from "routes/path"; | |||
| import { sprintf } from "sprintf-js"; | |||
| import { formatYYYYMMStr, now } from "utils/datetime"; | |||
| export default function UseSummaryList() { | |||
| const { setHeaderTitle, setTabs } = useDashboard( | |||
| @@ -99,6 +94,19 @@ function SearchBox({ table }: CommonProps) { | |||
| }); | |||
| }, [yyyymm]); | |||
| const downloadCsvUrl = useMemo(() => { | |||
| if (!selectedYYYYMM) return ""; | |||
| const param = new URLSearchParams({ | |||
| summary_yyyymm: selectedYYYYMM, | |||
| }); | |||
| return ( | |||
| process.env.REACT_APP_HOST_API_KEY + | |||
| "/custom/hello-techno/use-summary/csv?" + | |||
| param.toString() | |||
| ); | |||
| }, [selectedYYYYMM]); | |||
| const { callAPI: callGetUseSummaryYYYYMMs } = useAPICall({ | |||
| apiMethod: getUseSummaryYYYYMMs, | |||
| onSuccess: ({ data: { records } }) => { | |||
| @@ -180,6 +188,14 @@ function SearchBox({ table }: CommonProps) { | |||
| size="small" | |||
| /> | |||
| </Grid> | |||
| {!!selectedYYYYMM && ( | |||
| <Grid item xs={3} lg={2}> | |||
| <Typography>CSV</Typography> | |||
| <Button variant="contained" color="info" href={downloadCsvUrl}> | |||
| ダウンロード | |||
| </Button> | |||
| </Grid> | |||
| )} | |||
| </Grid> | |||
| </Box> | |||
| </FormProvider> | |||