Add skeleton of FilterModal

This commit is contained in:
Justin Edmund 2023-03-17 15:21:53 -07:00
parent e13c07d57f
commit e3bdf820b4
5 changed files with 17 additions and 58 deletions

View file

@ -40,11 +40,6 @@
} }
.Button.Filter.Blended { .Button.Filter.Blended {
&.FiltersActive .Accessory svg {
fill: var(--accent-blue);
stroke: none;
}
&:hover { &:hover {
background: var(--button-bg); background: var(--button-bg);
} }

View file

@ -14,7 +14,6 @@ import { defaultFilterset } from '~utils/defaultFilters'
import FilterIcon from '~public/icons/Filter.svg' import FilterIcon from '~public/icons/Filter.svg'
import './index.scss' import './index.scss'
import { getCookie } from 'cookies-next'
interface Props { interface Props {
children: React.ReactNode children: React.ReactNode
@ -167,7 +166,7 @@ const FilterBar = (props: Props) => {
</Select> </Select>
<Button <Button
className={filterButtonClasses} className="Filter"
blended={true} blended={true}
leftAccessoryIcon={<FilterIcon />} leftAccessoryIcon={<FilterIcon />}
onClick={() => setFilterModalOpen(true)} onClick={() => setFilterModalOpen(true)}
@ -178,7 +177,7 @@ const FilterBar = (props: Props) => {
defaultFilterSet={defaultFilterset} defaultFilterSet={defaultFilterset}
filterSet={advancedFilters} filterSet={advancedFilters}
open={filterModalOpen} open={filterModalOpen}
onOpenChange={setFilterModalOpen} <FilterModal open={filterModalOpen} onOpenChange={setFilterModalOpen} />
sendAdvancedFilters={handleAdvancedFiltersChanged} sendAdvancedFilters={handleAdvancedFiltersChanged}
/> />
</> </>

View file

@ -23,7 +23,7 @@ import type { DialogProps } from '@radix-ui/react-dialog'
import CrossIcon from '~public/icons/Cross.svg' import CrossIcon from '~public/icons/Cross.svg'
import './index.scss' import './index.scss'
interface Props extends DialogProps { interface Props extends DialogProps {}
defaultFilterSet: FilterSet defaultFilterSet: FilterSet
filterSet: FilterSet filterSet: FilterSet
sendAdvancedFilters: (filters: FilterSet) => void sendAdvancedFilters: (filters: FilterSet) => void
@ -46,6 +46,7 @@ const FilterModal = (props: Props) => {
const footerRef = React.createRef<HTMLDivElement>() const footerRef = React.createRef<HTMLDivElement>()
// States // States
const [filters, setFilters] = useState<{ [key: string]: any }>()
const [open, setOpen] = useState(false) const [open, setOpen] = useState(false)
const [chargeAttackOpen, setChargeAttackOpen] = useState(false) const [chargeAttackOpen, setChargeAttackOpen] = useState(false)
const [fullAutoOpen, setFullAutoOpen] = useState(false) const [fullAutoOpen, setFullAutoOpen] = useState(false)
@ -109,7 +110,7 @@ const FilterModal = (props: Props) => {
setOriginalOnly(filterSet.original) setOriginalOnly(filterSet.original)
}, [filterSet]) }, [filterSet])
function openSelect(name: 'charge_attack' | 'full_auto' | 'auto_guard') { function sendFilters() {
setChargeAttackOpen(name === 'charge_attack' ? !chargeAttackOpen : false) setChargeAttackOpen(name === 'charge_attack' ? !chargeAttackOpen : false)
setFullAutoOpen(name === 'full_auto' ? !fullAutoOpen : false) setFullAutoOpen(name === 'full_auto' ? !fullAutoOpen : false)
setAutoGuardOpen(name === 'auto_guard' ? !autoGuardOpen : false) setAutoGuardOpen(name === 'auto_guard' ? !autoGuardOpen : false)
@ -381,7 +382,7 @@ const FilterModal = (props: Props) => {
<Dialog open={open} onOpenChange={openChange}> <Dialog open={open} onOpenChange={openChange}>
<DialogTrigger asChild>{props.children}</DialogTrigger> <DialogTrigger asChild>{props.children}</DialogTrigger>
<DialogContent <DialogContent
className="Filter" className="Search"
headerref={headerRef} headerref={headerRef}
footerref={footerRef} footerref={footerRef}
onEscapeKeyDown={onEscapeKeyDown} onEscapeKeyDown={onEscapeKeyDown}
@ -399,8 +400,8 @@ const FilterModal = (props: Props) => {
</span> </span>
</DialogClose> </DialogClose>
</div> </div>
<form>
<div className="Fields"> <div className="Fields"></div>
{chargeAttackField()} {chargeAttackField()}
{fullAutoField()} {fullAutoField()}
{autoGuardField()} {autoGuardField()}
@ -413,20 +414,20 @@ const FilterModal = (props: Props) => {
{userQualityField()} {userQualityField()}
{originalOnlyField()} {originalOnlyField()}
</div> </div>
<div className="DialogFooter" ref={footerRef}> <div className="DialogFooter" ref={footerRef}>
<div className="Buttons Spaced"> <div className="Buttons Spaced">
<Button <Button
blended={true} blended={true}
text={t('modals.filters.buttons.clear')} <Button blended={true} text={t('modals.filters.buttons.clear')} />
onClick={resetFilters} onClick={resetFilters}
/> />
<Button <Button
contained={true} contained={true}
text={t('modals.filters.buttons.confirm')} text={t('modals.filters.buttons.confirm')}
onClick={saveFilters} />
/> </div>
</div> </div>
</div> </form>
</DialogContent> </DialogContent>
</Dialog> </Dialog>
) )

View file

@ -208,24 +208,6 @@
}, },
"filters": { "filters": {
"title": "Advanced filters", "title": "Advanced filters",
"labels": {
"charge_attack": "Charge Attack",
"full_auto": "Full Auto",
"auto_guard": "Auto Guard",
"max_buttons": "Maximum number of button presses",
"max_turns": "Maximum number of turns",
"min_characters": "Minimum number of characters",
"min_summons": "Minimum number of summons",
"min_weapons": "Minimum number of weapons",
"name_quality": "Hide untitled teams",
"user_quality": "Hide anonymous users",
"original_only": "Hide remixed teams"
},
"options": {
"on": "On",
"off": "Off",
"on_and_off": "On and Off"
},
"buttons": { "buttons": {
"confirm": "Save filters", "confirm": "Save filters",
"clear": "Clear filters" "clear": "Clear filters"

View file

@ -208,24 +208,6 @@
}, },
"filters": { "filters": {
"title": "フィルター設定", "title": "フィルター設定",
"labels": {
"charge_attack": "奥義",
"full_auto": "フルオート",
"auto_guard": "オートガード",
"max_buttons": "最大ポチ数",
"max_turns": "最大ターン数",
"min_characters": "最小キャラクター数",
"min_summons": "最小召喚石数",
"min_weapons": "最小武器数",
"name_quality": "無題の編成なし",
"user_quality": "無名のユーザーなし",
"original_only": "リミックスなし"
},
"options": {
"on": "ON",
"off": "OFF",
"on_and_off": "両方"
},
"buttons": { "buttons": {
"confirm": "フィルターを保存する", "confirm": "フィルターを保存する",
"clear": "保存したフィルターをクリア" "clear": "保存したフィルターをクリア"