5180 fichiers 38.5 Mo 0 téléchargements 476 vues mis à jour il y a 7 heures ui
nitro-v36-with-renderer-v36 / src / components / navigator / views / search / NavigatorFilterChipsView.tsx
NavigatorFilterChipsView.tsx 1.9 Ko Télécharger le fichier
import { FC, useRef, useState } from 'react';
import { LocalizeText, SearchFilterOptions } from '../../../../api';
import dropmenuArrow from '../../../../assets/images/habbo-skin/slices/dropmenu-default-arrow.png';
import { ListSelect } from '../../../../common/ListSelect';
import { NativeTextTree } from '../../../../common/native-text/NativeTextTree';

interface NavigatorFilterChipsViewProps {
    value: number;
    onChange: (index: number) => void;
}

export const NavigatorFilterChipsView: FC<NavigatorFilterChipsViewProps> = (props) => {
    const { value, onChange } = props;
    const [open, setOpen] = useState(false);
    const rootRef = useRef<HTMLDivElement>(null);
    const selected = SearchFilterOptions[value] ? value : 0;

    return (
        <NativeTextTree>
            <div ref={rootRef} className={`octane-navigator-air__filter${open ? ' is-open' : ''}`}>
                <ListSelect
                    aria-label={LocalizeText('navigator.filter.anything')}
                    container={rootRef}
                    itemClassName="octane-navigator-air__filter-option"
                    options={SearchFilterOptions.map((filter, index) => ({ value: String(index), label: LocalizeText('navigator.filter.' + filter.name) }))}
                    popupClassName="octane-navigator-air__filter-list"
                    sideOffset={-1}
                    triggerClassName="octane-navigator-air__filter-button"
                    value={String(selected)}
                    renderTrigger={(current) => (
                        <>
                            <span>{current?.label}</span>
                            <img src={dropmenuArrow} alt="" width={16} height={16} />
                        </>
                    )}
                    onOpenChange={setOpen}
                    onValueChange={(next) => onChange(Number(next))}
                />
            </div>
        </NativeTextTree>
    );
};
15Sujets
1Dépôts
20Membres
3En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser