fix: worktime table input fix
This commit is contained in:
		@@ -29,20 +29,20 @@ type Props = {
 | 
				
			|||||||
    range: dayjs.Dayjs[];
 | 
					    range: dayjs.Dayjs[];
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
const useWorkTableColumns = ({
 | 
					const useWorkTableColumns = ({
 | 
				
			||||||
    month,
 | 
					                                 month,
 | 
				
			||||||
    onUpdate,
 | 
					                                 onUpdate,
 | 
				
			||||||
    data,
 | 
					                                 data,
 | 
				
			||||||
    selectedCells,
 | 
					                                 selectedCells,
 | 
				
			||||||
    setSelectedCells,
 | 
					                                 setSelectedCells,
 | 
				
			||||||
    selectedBoundaries,
 | 
					                                 selectedBoundaries,
 | 
				
			||||||
    range,
 | 
					                                 range,
 | 
				
			||||||
}: Props) => {
 | 
					                             }: Props) => {
 | 
				
			||||||
    const totalAmount = useMemo(() => {
 | 
					    const totalAmount = useMemo(() => {
 | 
				
			||||||
        return data.reduce((acc, value) => {
 | 
					        return data.reduce((acc, value) => {
 | 
				
			||||||
            if (value.data) {
 | 
					            if (value.data) {
 | 
				
			||||||
                const sum = value.data.reduce(
 | 
					                const sum = value.data.reduce(
 | 
				
			||||||
                    (innerAcc, item) => innerAcc + item.amount,
 | 
					                    (innerAcc, item) => innerAcc + item.amount,
 | 
				
			||||||
                    0
 | 
					                    0,
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
                return acc + sum;
 | 
					                return acc + sum;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -103,15 +103,15 @@ const useWorkTableColumns = ({
 | 
				
			|||||||
                mantineTableBodyCellProps: ({ cell }) => ({
 | 
					                mantineTableBodyCellProps: ({ cell }) => ({
 | 
				
			||||||
                    style: selectedCells.includes(cell.id)
 | 
					                    style: selectedCells.includes(cell.id)
 | 
				
			||||||
                        ? {
 | 
					                        ? {
 | 
				
			||||||
                              backgroundColor:
 | 
					                            backgroundColor:
 | 
				
			||||||
                                  "var(--mantine-primary-color-filled)",
 | 
					                                "var(--mantine-primary-color-filled)",
 | 
				
			||||||
                              ...getBorderStyles(cell.id),
 | 
					                            ...getBorderStyles(cell.id),
 | 
				
			||||||
                          }
 | 
					                        }
 | 
				
			||||||
                        : {},
 | 
					                        : {},
 | 
				
			||||||
                    onClick: () => {
 | 
					                    onClick: () => {
 | 
				
			||||||
                        const result = processSelectedCells(
 | 
					                        const result = processSelectedCells(
 | 
				
			||||||
                            selectedCells,
 | 
					                            selectedCells,
 | 
				
			||||||
                            cell.id
 | 
					                            cell.id,
 | 
				
			||||||
                        );
 | 
					                        );
 | 
				
			||||||
                        setSelectedCells(result);
 | 
					                        setSelectedCells(result);
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
@@ -119,21 +119,27 @@ const useWorkTableColumns = ({
 | 
				
			|||||||
                // eslint-disable-next-line @typescript-eslint/ban-ts-comment
 | 
					                // eslint-disable-next-line @typescript-eslint/ban-ts-comment
 | 
				
			||||||
                // @ts-expect-error
 | 
					                // @ts-expect-error
 | 
				
			||||||
                Cell: ({ cell, row }) => {
 | 
					                Cell: ({ cell, row }) => {
 | 
				
			||||||
 | 
					                    let prevValue = formatValue(cell.renderValue());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    const onAccept = (value: string) => {
 | 
				
			||||||
 | 
					                        if (value === prevValue) return;
 | 
				
			||||||
 | 
					                        prevValue = value;
 | 
				
			||||||
 | 
					                        return /^\d\d:\d\d$/.test(value) &&
 | 
				
			||||||
 | 
					                            onUpdate(
 | 
				
			||||||
 | 
					                                date.toDate(),
 | 
				
			||||||
 | 
					                                row.original.userId,
 | 
				
			||||||
 | 
					                                value,
 | 
				
			||||||
 | 
					                            );
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    return (
 | 
					                    return (
 | 
				
			||||||
                        <Flex direction={"column"}>
 | 
					                        <Flex direction={"column"}>
 | 
				
			||||||
                            <Input
 | 
					                            <Input
 | 
				
			||||||
                                component={IMaskInput}
 | 
					                                component={IMaskInput}
 | 
				
			||||||
                                mask="00:00"
 | 
					                                mask="00:00"
 | 
				
			||||||
                                onAccept={value => {
 | 
					                                onAccept={onAccept}
 | 
				
			||||||
                                    return /^\d\d:\d\d$/.test(value) &&
 | 
					 | 
				
			||||||
                                        onUpdate(
 | 
					 | 
				
			||||||
                                            date.toDate(),
 | 
					 | 
				
			||||||
                                            row.original.userId,
 | 
					 | 
				
			||||||
                                            value,
 | 
					 | 
				
			||||||
                                        );
 | 
					 | 
				
			||||||
                                }}
 | 
					 | 
				
			||||||
                                styles={{ input: { textAlign: "center" } }}
 | 
					                                styles={{ input: { textAlign: "center" } }}
 | 
				
			||||||
                                defaultValue={formatValue(cell.renderValue())}
 | 
					                                value={formatValue(cell.renderValue())}
 | 
				
			||||||
                            />
 | 
					                            />
 | 
				
			||||||
                        </Flex>
 | 
					                        </Flex>
 | 
				
			||||||
                    );
 | 
					                    );
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user