Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | import { Dispatch, FC, SetStateAction } from 'react'; import { OkResponse } from '../../models/okResponse'; import { ErrorResponse } from '../../models/errorResponse'; import { Pending } from '../../models/pending'; import { useFetchReplaceRental } from '../../hooks/useFetchReplaceRental'; import styled from 'styled-components'; import { RentalPageFlag } from '../../utils/flag'; type Props = { id: string; setIsOpen: Dispatch<SetStateAction<boolean>>; setResult: Dispatch<SetStateAction<OkResponse | ErrorResponse | Pending | null>>; isHidden: boolean; rentalPageFlag: RentalPageFlag; }; const StyledAllRentalItemsButton = styled.button` padding: 5px 20px; background-color: #caad63; border: none; font-size: 1.6rem; cursor: pointer; `; const StyledIndividualItemButton = styled.button` background-color: #caad63; border: none; font-size: 1.6rem; cursor: pointer; `; const ReplaceRentalButton: FC<Props> = (props) => { const handleClick = async (): Promise<void> => { props.setIsOpen(true); props.setResult('pending'); const result: OkResponse | ErrorResponse = await useFetchReplaceRental(parseInt(props.id)); props.setResult(result); }; return props.rentalPageFlag === 'allRentalItems' ? ( <StyledAllRentalItemsButton onClick={handleClick} disabled={props.isHidden}> 返却 </StyledAllRentalItemsButton> ) : props.rentalPageFlag === 'individualItem' ? ( <StyledIndividualItemButton onClick={handleClick} disabled={props.isHidden}> 返却 </StyledIndividualItemButton> ) : ( <>Unexnpected rentalPageFlag props</> ); }; export default ReplaceRentalButton; |