-
x.checked)
- .filter(Boolean).length
- }
- open={rarityMenu}
- onOpenChange={rarityMenuOpened}
- >
-
- {t('filters.labels.rarity')}
-
- {Array.from(Array(rarities.length)).map((x, i) => {
- return (
-
- {t(`rarities.${rarities[i]}`)}
-
- )
- })}
-
+ const rarityFilter = (
+
x.checked)
+ .filter(Boolean).length
+ }
+ open={rarityMenu}
+ onOpenChange={rarityMenuOpened}
+ >
+ {Array.from(Array(rarities.length)).map((x, i) => {
+ return (
+
+ {t(`rarities.${rarities[i]}`)}
+
+ )
+ })}
+
+ )
-
x.checked)
- .filter(Boolean).length
- }
- open={elementMenu}
- onOpenChange={elementMenuOpened}
- >
-
- {t('filters.labels.element')}
-
- {Array.from(Array(elements.length)).map((x, i) => {
- return (
-
- {t(`elements.${elements[i]}`)}
-
- )
- })}
-
+ const elementFilter = (
+
x.checked)
+ .filter(Boolean).length
+ }
+ open={elementMenu}
+ onOpenChange={elementMenuOpened}
+ >
+ {Array.from(Array(elements.length)).map((x, i) => {
+ return (
+
+ {t(`elements.${elements[i]}`)}
+
+ )
+ })}
+
+ )
+
+ return (
+
+ {rarityFilter}
+ {elementFilter}
)
}
diff --git a/components/weapon/WeaponSearchFilterBar/index.module.scss b/components/weapon/WeaponSearchFilterBar/index.module.scss
index e69de29b..e16a6293 100644
--- a/components/weapon/WeaponSearchFilterBar/index.module.scss
+++ b/components/weapon/WeaponSearchFilterBar/index.module.scss
@@ -0,0 +1,11 @@
+.filterBar {
+ display: flex;
+ gap: $unit;
+ padding: $unit-half $unit-3x;
+
+ @include breakpoint(phone) {
+ display: grid;
+ gap: $unit;
+ grid-template-columns: 1fr 1fr;
+ }
+}
diff --git a/components/weapon/WeaponSearchFilterBar/index.tsx b/components/weapon/WeaponSearchFilterBar/index.tsx
index f70f7c7c..ee6a134d 100644
--- a/components/weapon/WeaponSearchFilterBar/index.tsx
+++ b/components/weapon/WeaponSearchFilterBar/index.tsx
@@ -40,6 +40,10 @@ const WeaponSearchFilterBar = (props: Props) => {
emptyWeaponSeriesState
)
+ useEffect(() => {
+ sendFilters()
+ }, [rarityState, elementState, proficiencyState, seriesState])
+
function rarityMenuOpened(open: boolean) {
if (open) {
setRarityMenu(true)
@@ -124,178 +128,141 @@ const WeaponSearchFilterBar = (props: Props) => {
props.sendFilters(filters)
}
- const renderWeaponSeries = () => {
- const numColumns = 3
+ const renderProficiencies = () => {
return (
-
- {Array.from({ length: numColumns }, () => 0).map((x, i) => {
- return renderWeaponSeriesGroup(i)
- })}
-
- )
- }
-
- const renderWeaponSeriesGroup = (index: number) => {
- return (
-
- {weaponSeries
- .slice(
- index * Math.ceil(weaponSeries.length / 3),
- (index + 1) * Math.ceil(weaponSeries.length / 3)
+ <>
+ {proficiencies.map((x, i) => {
+ return (
+
+ {t(`proficiencies.${x}`)}
+
)
- .map((x, i) => {
- return renderSingleWeaponSeries(x.id, x.slug)
- })}
-
+ })}
+ >
)
}
- const renderSingleWeaponSeries = (id: number, slug: string) => {
+ const renderWeaponSeries = () => {
return (
-
- {t(`series.${slug}`)}
-
+ <>
+ {weaponSeries.map((x, i) => {
+ return (
+
+ {t(`series.${x.slug}`)}
+
+ )
+ })}
+ >
)
}
- useEffect(() => {
- sendFilters()
- }, [rarityState, elementState, proficiencyState, seriesState])
+ const rarityFilter = (
+
x.checked)
+ .filter(Boolean).length
+ }
+ open={rarityMenu}
+ onOpenChange={rarityMenuOpened}
+ >
+ {Array.from(Array(rarities.length)).map((x, i) => {
+ return (
+
+ {t(`rarities.${rarities[i]}`)}
+
+ )
+ })}
+
+ )
+
+ const elementFilter = (
+
x.checked)
+ .filter(Boolean).length
+ }
+ open={elementMenu}
+ onOpenChange={elementMenuOpened}
+ >
+ {Array.from(Array(elements.length)).map((x, i) => {
+ return (
+
+ {t(`elements.${elements[i]}`)}
+
+ )
+ })}
+
+ )
+
+ const proficiencyFilter = (
+
x.checked)
+ .filter(Boolean).length
+ }
+ open={proficiencyMenu}
+ onOpenChange={proficiencyMenuOpened}
+ >
+ {renderProficiencies()}
+
+ )
+
+ const seriesFilter = (
+
x.checked)
+ .filter(Boolean).length
+ }
+ open={seriesMenu}
+ onOpenChange={seriesMenuOpened}
+ >
+ {renderWeaponSeries()}
+
+ )
return (
-
- x.checked)
- .filter(Boolean).length
- }
- open={rarityMenu}
- onOpenChange={rarityMenuOpened}
- >
-
- {t('filters.labels.rarity')}
-
- {Array.from(Array(rarities.length)).map((x, i) => {
- return (
-
- {t(`rarities.${rarities[i]}`)}
-
- )
- })}
-
-
- x.checked)
- .filter(Boolean).length
- }
- open={elementMenu}
- onOpenChange={elementMenuOpened}
- >
-
- {t('filters.labels.element')}
-
- {Array.from(Array(elements.length)).map((x, i) => {
- return (
-
- {t(`elements.${elements[i]}`)}
-
- )
- })}
-
-
- x.checked)
- .filter(Boolean).length
- }
- open={proficiencyMenu}
- onOpenChange={proficiencyMenuOpened}
- >
-
- {t('filters.labels.proficiency')}
-
-
-
- {Array.from(Array(proficiencies.length / 2)).map((x, i) => {
- return (
-
- {t(`proficiencies.${proficiencies[i]}`)}
-
- )
- })}
-
-
- {Array.from(Array(proficiencies.length / 2)).map((x, i) => {
- return (
-
- {t(
- `proficiencies.${
- proficiencies[i + proficiencies.length / 2]
- }`
- )}
-
- )
- })}
-
-
-
-
- x.checked)
- .filter(Boolean).length
- }
- open={seriesMenu}
- onOpenChange={seriesMenuOpened}
- >
-
- {t('filters.labels.series')}
-
-
-
-
+
+ {rarityFilter}
+ {elementFilter}
+ {proficiencyFilter}
+ {seriesFilter}
+
)
}