From b1979d7351cd27a1e2ad95f74b1fe6d410f834b7 Mon Sep 17 00:00:00 2001 From: aleidk Date: Sat, 4 Nov 2023 19:49:25 -0300 Subject: [PATCH] Add a clear button that reset the filters values. --- src/assets/style/utils.css | 101 +++++++++++------ src/components/Inputs/SelectInput.module.css | 6 +- src/components/Inputs/SelectInput.tsx | 17 ++- src/components/Table/Table.tsx | 110 +++++++++---------- src/pages/games/index.astro | 6 +- 5 files changed, 143 insertions(+), 97 deletions(-) diff --git a/src/assets/style/utils.css b/src/assets/style/utils.css index 3b9c47e..58dda64 100644 --- a/src/assets/style/utils.css +++ b/src/assets/style/utils.css @@ -120,110 +120,141 @@ text-align: end; } +.overflow-scroll { + overflow: scroll; +} +.overflow-x-scroll { + overflow-x: scroll; +} +.overflow-y-scroll { + overflow-y: scroll; +} + /* Start Margins */ .m-1 { - margin: var(--prj-spacing-1); + margin: var(--prj-spacing-1) !important; } .m-2 { - margin: var(--prj-spacing-2); + margin: var(--prj-spacing-2) !important; } .m-3 { - margin: var(--prj-spacing-3); + margin: var(--prj-spacing-3) !important; } .m-4 { - margin: var(--prj-spacing-4); + margin: var(--prj-spacing-4) !important; } .m-5 { - margin: var(--prj-spacing-5); + margin: var(--prj-spacing-5) !important; +} +.m-auto { + margin: auto !important; } .mx-1 { - margin-right: var(--prj-spacing-1) 0; + margin-right: var(--prj-spacing-1) 0 !important; } .mx-2 { - margin-right: var(--prj-spacing-2) 0; + margin-right: var(--prj-spacing-2) 0 !important; } .mx-3 { - margin-right: var(--prj-spacing-3) 0; + margin-right: var(--prj-spacing-3) 0 !important; } .mx-4 { - margin-right: var(--prj-spacing-4) 0; + margin-right: var(--prj-spacing-4) 0 !important; } .mx-5 { - margin-right: var(--prj-spacing-5) 0; + margin-right: var(--prj-spacing-5) 0 !important; +} +.mx-auto { + margin-right: auto 0 !important; } .my-1 { - margin-right: 0 var(--prj-spacing-1); + margin-right: 0 var(--prj-spacing-1) !important; } .my-2 { - margin-right: 0 var(--prj-spacing-2); + margin-right: 0 var(--prj-spacing-2) !important; } .my-3 { - margin-right: 0 var(--prj-spacing-3); + margin-right: 0 var(--prj-spacing-3) !important; } .my-4 { - margin-right: 0 var(--prj-spacing-4); + margin-right: 0 var(--prj-spacing-4) !important; } .my-5 { - margin-right: 0 var(--prj-spacing-5); + margin-right: 0 var(--prj-spacing-5) !important; +} +.my-auto { + margin-right: 0 auto !important; } .mt-1 { - margin-top: var(--prj-spacing-1); + margin-top: var(--prj-spacing-1) !important; } .mt-2 { - margin-top: var(--prj-spacing-2); + margin-top: var(--prj-spacing-2) !important; } .mt-3 { - margin-top: var(--prj-spacing-3); + margin-top: var(--prj-spacing-3) !important; } .mt-4 { - margin-top: var(--prj-spacing-4); + margin-top: var(--prj-spacing-4) !important; } .mt-5 { - margin-top: var(--prj-spacing-5); + margin-top: var(--prj-spacing-5) !important; +} +.mt-auto { + margin-top: auto !important; } .mb-1 { - margin-bottom: var(--prj-spacing-1); + margin-bottom: var(--prj-spacing-1) !important; } .mb-2 { - margin-bottom: var(--prj-spacing-2); + margin-bottom: var(--prj-spacing-2) !important; } .mb-3 { - margin-bottom: var(--prj-spacing-3); + margin-bottom: var(--prj-spacing-3) !important; } .mb-4 { - margin-bottom: var(--prj-spacing-4); + margin-bottom: var(--prj-spacing-4) !important; } .mb-5 { - margin-bottom: var(--prj-spacing-5); + margin-bottom: var(--prj-spacing-5) !important; +} +.mb-auto { + margin-bottom: auto !important; } .ml-1 { - margin-left: var(--prj-spacing-1); + margin-left: var(--prj-spacing-1) !important; } .ml-2 { - margin-left: var(--prj-spacing-2); + margin-left: var(--prj-spacing-2) !important; } .ml-3 { - margin-left: var(--prj-spacing-3); + margin-left: var(--prj-spacing-3) !important; } .ml-4 { - margin-left: var(--prj-spacing-4); + margin-left: var(--prj-spacing-4) !important; } .ml-5 { - margin-left: var(--prj-spacing-5); + margin-left: var(--prj-spacing-5) !important; +} +.ml-auto { + margin-left: auto !important; } .mr-1 { - margin-right: var(--prj-spacing-1); + margin-right: var(--prj-spacing-1) !important; } .mr-2 { - margin-right: var(--prj-spacing-2); + margin-right: var(--prj-spacing-2) !important; } .mr-3 { - margin-right: var(--prj-spacing-3); + margin-right: var(--prj-spacing-3) !important; } .mr-4 { - margin-right: var(--prj-spacing-4); + margin-right: var(--prj-spacing-4) !important; } .mr-5 { - margin-right: var(--prj-spacing-5); + margin-right: var(--prj-spacing-5) !important; +} +.mr-auto { + margin-right: var(--prj-spacing-5) !important; } /* End Margins */ diff --git a/src/components/Inputs/SelectInput.module.css b/src/components/Inputs/SelectInput.module.css index 8960fff..ed2eb4d 100644 --- a/src/components/Inputs/SelectInput.module.css +++ b/src/components/Inputs/SelectInput.module.css @@ -6,6 +6,9 @@ padding: var(--prj-spacing-1); background-color: var(--bg-color); color: var(--text-color); + + display: flex; + gap: var(--prj-spacing-1); } .input { @@ -16,9 +19,6 @@ font-size: 0.8em; } -.realInput { -} - .selectedItem { background-color: var(--prj-surface-3); color: var(--prj-text); diff --git a/src/components/Inputs/SelectInput.tsx b/src/components/Inputs/SelectInput.tsx index 7fb1dea..ba73e15 100644 --- a/src/components/Inputs/SelectInput.tsx +++ b/src/components/Inputs/SelectInput.tsx @@ -11,12 +11,14 @@ interface Props { options: [{ label: string; value: any }]; keyData: string; isMultiple?: boolean; + value?: string | string[]; } export default function SelectInput({ options, isMultiple = false, onChange, + value = [], }: Props): JSX.Element { const [selected, setSelected] = useState([]); const [filteredOptions, setFilteredOptions] = useState([]); @@ -33,12 +35,12 @@ export default function SelectInput({ return; } - onChange(isMultiple ? selected : selected.at(0)); + onChange(isMultiple ? selected : selected[0]); }, [selected]); const handleFocusInput = (): void => { setIsOptionsOpen(true); - inputRef.current.focus(); + inputRef.current?.focus(); }; const handleAddElement = (item: any): void => { @@ -49,6 +51,9 @@ export default function SelectInput({ return [item]; }); setIsOptionsOpen(false); + + if (inputRef.current === null) return; + inputRef.current.value = ''; }; @@ -111,6 +116,14 @@ export default function SelectInput({ onChange={handleFilterOptions} /> +