Skip to content

Commit e95cc11

Browse files
committed
refactor. better naming for the add display filter form
2 parents d61997e + d476857 commit e95cc11

File tree

6 files changed

+44
-27
lines changed

6 files changed

+44
-27
lines changed

src/components/elements/dateManager/SearchForm.tsx src/components/elements/dateManager/AddNewDisplayFilterForm.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { DatePicker, TimeField } from '@mui/x-date-pickers';
44
import React, { Dispatch, SetStateAction } from 'react';
55
import { Dayjs } from 'dayjs';
66

7-
interface SearchFormProps {
7+
interface AddNewDisplayFilterFormProps {
88
setDisplayName: Dispatch<SetStateAction<string>>;
99
setDisplayNameTouched: (value: boolean) => void;
1010
setDate: Dispatch<SetStateAction<Dayjs | null>>;
@@ -14,7 +14,7 @@ interface SearchFormProps {
1414
displayName: string;
1515
setHour: Dispatch<SetStateAction<Dayjs | null>>;
1616
}
17-
export const SearchForm = ({
17+
export const AddNewDisplayFilterForm = ({
1818
setDisplayName,
1919
setDisplayNameTouched,
2020
setDate,
@@ -23,7 +23,7 @@ export const SearchForm = ({
2323
hour,
2424
setHour,
2525
displayName,
26-
}: SearchFormProps) => {
26+
}: AddNewDisplayFilterFormProps) => {
2727
return (
2828
<Box width={'50%'} py={2} px={1} display={'inline-grid'} gap={2}>
2929
<Box display={'inline-grid'} gap={1}>

src/components/elements/dateManager/Presets.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
import React from 'react';
22
import { List, ListItem, ListItemButton, ListItemText, Typography } from '@mui/material';
33
import { Box } from '@mui/system';
4-
import { PresetType } from '../displayFilter/ComparePopover';
54
import { Dayjs } from 'dayjs';
65

6+
export type PresetType = {
7+
name: string;
8+
value: Dayjs;
9+
};
10+
711
const PresetsList = ({
812
list,
913
onPresetClick,

src/components/elements/dateManager/index.tsx

+16-9
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ import { Button, ButtonStretch, ButtonVariant } from '../button';
77
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
88
import theme from '../../../theme';
99
import PresetsContent from './Presets';
10-
import { SearchForm } from './SearchForm';
11-
import { PresetType } from '../displayFilter/ComparePopover';
10+
import { PresetType } from '../displayFilter/AddNewFieldPopover';
11+
import { AddNewDisplayFilterForm } from './AddNewDisplayFilterForm';
1212

1313
export interface DateManagerProps {
1414
presets: PresetType[];
15-
compare: ({ alias, value }: { alias: string; value: number }) => void;
15+
addClickedHandler: ({ alias, value }: { alias: string; value: number }) => void;
1616
close: () => void;
1717
loading: boolean;
18+
oldReferenceName: string;
1819
}
1920

2021
const formattedDate = (
@@ -24,7 +25,13 @@ const formattedDate = (
2425
return `${dayjs(date).format('YYYY-MM-DD')} ${dayjs(hour).format('HH:mm:ss')}`;
2526
};
2627

27-
export const DateManager = ({ presets, compare, close, loading }: DateManagerProps) => {
28+
export const DateManager = ({
29+
presets,
30+
addClickedHandler,
31+
close,
32+
loading,
33+
oldReferenceName,
34+
}: DateManagerProps) => {
2835
const defaultDisplayName = `as of ${dayjs().format('YYYY-MM-DD')} ${dayjs().format('HH:mm:ss')}`;
2936

3037
const [date, setDate] = useState<null | Dayjs>(dayjs());
@@ -38,7 +45,7 @@ export const DateManager = ({ presets, compare, close, loading }: DateManagerPro
3845
useEffect(() => {
3946
const value = formattedDate(date, hour);
4047
if (!displayNameTouched) {
41-
setDisplayName(`as of ${value}`);
48+
setDisplayName(`copy of ${oldReferenceName}`);
4249
}
4350
setValue(dayjs(value).unix());
4451
}, [hour, date]);
@@ -48,12 +55,12 @@ export const DateManager = ({ presets, compare, close, loading }: DateManagerPro
4855
<ThemeProvider theme={theme}>
4956
<Box width={'530px'} height={'100%'} color={'#172D32'} px={1}>
5057
<Typography component={'div'} p={1} variant={'mediumBold'}>
51-
Compare to previous version
58+
Add new field
5259
</Typography>
5360
<Divider sx={{ backgroundColor: '#F8FAFC' }} />
5461

5562
<Box display={'flex'}>
56-
<SearchForm
63+
<AddNewDisplayFilterForm
5764
setErrorDate={setErrorDate}
5865
setDisplayName={setDisplayName}
5966
setDisplayNameTouched={setDisplayNameTouched}
@@ -90,11 +97,11 @@ export const DateManager = ({ presets, compare, close, loading }: DateManagerPro
9097
stretch={ButtonStretch.Slim}
9198
variant={ButtonVariant.Primary}
9299
onClick={() => {
93-
compare({ value, alias: displayName });
100+
addClickedHandler({ alias: displayName, value });
94101
close();
95102
}}
96103
disabled={!date || errorDate || loading}
97-
label={loading ? 'loading...' : 'Search'}
104+
label={loading ? 'loading...' : 'Add Field'}
98105
/>
99106
</Box>
100107
</Box>

src/components/elements/displayFilter/ComparePopover.tsx src/components/elements/displayFilter/AddNewFieldPopover.tsx

+7-3
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,16 @@ export const defaultPresets: PresetType[] = [
2525
},
2626
];
2727

28-
const ComparePopover = ({
28+
const AddNewFieldPopover = ({
2929
presets,
3030
addNewFilter,
31+
oldReferenceName,
3132
}: {
3233
presets?: PresetType[];
3334
addNewFilter: ({ alias, value }: { alias: string; value: number }) => void;
35+
oldReferenceName: string;
3436
}) => {
37+
console.log('oldReferenceName ', oldReferenceName);
3538
const [loading, setLoading] = useState(false);
3639
const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);
3740
const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
@@ -76,14 +79,15 @@ const ComparePopover = ({
7679
}}
7780
>
7881
<DateManager
82+
oldReferenceName={oldReferenceName}
7983
close={handleClose}
8084
loading={loading}
81-
compare={addNewFilter}
85+
addClickedHandler={addNewFilter}
8286
presets={presets?.length ? presets : defaultPresets}
8387
/>
8488
</Popover>
8589
</div>
8690
);
8791
};
8892

89-
export default ComparePopover;
93+
export default AddNewFieldPopover;

src/components/elements/displayFilter/index.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { IconButton, Stack, ThemeProvider, Tooltip, Typography } from '@mui/mate
22
import React, { useEffect, useState } from 'react';
33
import { Icon } from '../../icons';
44
import theme from '../../../theme';
5-
import ComparePopover from './ComparePopover';
5+
import AddNewFieldPopover from './AddNewFieldPopover';
66
import { Box } from '@mui/system';
77
import { FilterType } from '../controlledDisplayFiltersGroup';
88

@@ -86,7 +86,9 @@ export function DisplayFilter({
8686
</Tooltip>
8787
</Box>
8888

89-
{showCompareButton && <ComparePopover addNewFilter={addNewFilterHandler} />}
89+
{showCompareButton && (
90+
<AddNewFieldPopover oldReferenceName={filter.name} addNewFilter={addNewFilterHandler} />
91+
)}
9092
</Stack>
9193
</ThemeProvider>
9294
);

src/stories/elements/dateManager/DateManager.stories.tsx

+9-9
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@ import { Meta, StoryFn } from '@storybook/react';
22
import React from 'react';
33
import { DateManager, DateManagerProps } from '../../../components';
44
import dayjs from 'dayjs';
5-
6-
function deductDays(days: number) {
7-
const date = new Date();
8-
return dayjs(date.setDate(date.getDay() - days)).format('YYYY-MM-DD');
9-
}
5+
import { Box } from '@mui/system';
106

117
const meta: Meta<DateManagerProps> = {
128
title: 'Elements/Date Manager',
@@ -15,22 +11,26 @@ const meta: Meta<DateManagerProps> = {
1511

1612
export default meta;
1713

18-
const Template: StoryFn<DateManagerProps> = (args) => <DateManager {...args} />;
14+
const Template: StoryFn<DateManagerProps> = (args) => (
15+
<Box sx={{ backgroundColor: 'white', width: 'fit-content' }}>
16+
<DateManager {...args} />
17+
</Box>
18+
);
1919

2020
export const DateManagerExample = Template.bind({});
2121
DateManagerExample.args = {
2222
presets: [
2323
{
2424
name: '1 day ago',
25-
value: deductDays(1),
25+
value: dayjs().subtract(1, 'day'),
2626
},
2727
{
2828
name: '1 week ago',
29-
value: deductDays(7),
29+
value: dayjs().subtract(7, 'day'),
3030
},
3131
{
3232
name: '1 month ago',
33-
value: deductDays(30),
33+
value: dayjs().subtract(30, 'day'),
3434
},
3535
],
3636
};

0 commit comments

Comments
 (0)