import styled from '@emotion/styled'; import { forwardRef, useState } from 'react'; import EditableCellWrapper from './EditableCellWrapper'; import DatePicker from '../../form/DatePicker'; export type EditableDateProps = { value: Date; changeHandler: (date: Date) => void; editModeHorizontalAlign?: 'left' | 'right'; }; const StyledContainer = styled.div` display: flex; align-items: center; `; function EditableDate({ value, changeHandler, editModeHorizontalAlign, }: EditableDateProps) { const [inputValue, setInputValue] = useState(value); const [isEditMode, setIsEditMode] = useState(false); type DivProps = React.HTMLProps; const DateDisplay = forwardRef( ({ value, onClick }, ref) => (
{value && new Intl.DateTimeFormat(undefined, { month: 'short', day: 'numeric', year: 'numeric', }).format(new Date(value as string))}
), ); return ( setIsEditMode(false)} onInsideClick={() => setIsEditMode(true)} editModeHorizontalAlign={editModeHorizontalAlign} editModeContent={ { changeHandler(date); setInputValue(date); }} customInput={} /> } nonEditModeContent={
{inputValue && new Intl.DateTimeFormat(undefined, { month: 'short', day: 'numeric', year: 'numeric', }).format(inputValue)}
} >
); } export default EditableDate;