Skip to content

Commit

Permalink
feat: add file store ui
Browse files Browse the repository at this point in the history
  • Loading branch information
danielstefanequilobe committed Jul 27, 2022
1 parent 6a5028d commit d30f5f9
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions src/pages/Files/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import { getFileList } from '../../store/actions/climateWarehouseActions';

const StyledUploadIcon = styled(UploadIcon)`
margin-left: auto;
cursor: pointer;
`;

const StyledSectionContainer = styled('div')`
Expand Down Expand Up @@ -86,11 +87,16 @@ const StyledIconContainer = styled('div')`
cursor: pointer;
`;

const SortEnum = {
aToZ: 'aToZ',
zToA: 'zToA',
};

const Files = () => {
const dispatch = useDispatch();
const { fileList } = useSelector(store => store.climateWarehouse);
const [filteredFileList, setFilteredFileList] = useState(fileList ?? []);
const [sortOrder, setSortOrder] = useState('A to Z');
const [sortOrder, setSortOrder] = useState(SortEnum.aToZ);

useEffect(() => dispatch(getFileList()), []);
useEffect(() => setFilteredFileList(fileList), [fileList]);
Expand Down Expand Up @@ -119,16 +125,17 @@ const Files = () => {
};
}, []);

const getArraySortedAlphabetically = (arr, order) => {
const getArraySortedAlphabetically = useCallback((arr, order) => {
const sortAToZ = (a, b) => a.fileName.localeCompare(b.fileName);
const sortZToA = (a, b) => b.fileName.localeCompare(a.fileName);
const sortFunction = order === 'A to Z' ? sortAToZ : sortZToA;
const sortFunction = order === SortEnum.aToZ ? sortAToZ : sortZToA;
return [...arr].sort(sortFunction);
};
}, []);

const changeSortOrder = useCallback(() => {
setSortOrder(prevOrder => {
const newOrder = prevOrder === 'A to Z' ? 'Z to A' : 'A to Z';
const newOrder =
prevOrder === SortEnum.aToZ ? SortEnum.zToA : SortEnum.aToZ;
setFilteredFileList(
getArraySortedAlphabetically(filteredFileList, newOrder),
);
Expand All @@ -146,7 +153,7 @@ const Files = () => {
<SearchInput size="large" onChange={onSearch} outline />

<StyledSortButtonContainer onClick={changeSortOrder}>
{sortOrder === 'A to Z' ? (
{sortOrder === SortEnum.aToZ ? (
<>
<Body>
<FormattedMessage id="sort-z-to-a" />
Expand Down

0 comments on commit d30f5f9

Please sign in to comment.