"use client" import { useEffect, useState } from "react" import Image from "next/image"; import useLocaleStore from "@/stores/localeStore" import useLightconeStore from "@/stores/lightconeStore"; import LightconeCard from "../card/lightconeCard"; import useUserDataStore from "@/stores/userDataStore"; import useAvatarStore from "@/stores/avatarStore"; import useModelStore from "@/stores/modelStore"; import { useTranslations } from "next-intl"; export default function LightconeBar() { const [listPath, setListPath] = useState>({ "knight": false, "mage": false, "priest": false, "rogue": false, "shaman": false, "warlock": false, "warrior": false, "memory": false }) const [listRank, setListRank] = useState>({ "3": false, "4": false, "5": false }) const { locale } = useLocaleStore() const { listLightcone, filter, setFilter, defaultFilter } = useLightconeStore() const { setAvatar, avatars } = useUserDataStore() const { avatarSelected } = useAvatarStore() const { setIsOpenLightcone } = useModelStore() const transI18n = useTranslations("DataPage") useEffect(() => { const newListPath: Record = { "knight": false, "mage": false, "priest": false, "rogue": false, "shaman": false, "warlock": false, "warrior": false, "memory": false } const newListRank: Record = { "3": false, "4": false, "5": false } for (const path of defaultFilter.path) { if (path in newListPath) { newListPath[path] = true } } for (const rarity of defaultFilter.rarity) { if (rarity in newListRank) { newListRank[rarity] = true } } setListPath(newListPath) setListRank(newListRank) }, [defaultFilter]) useEffect(() => { setFilter({ ...filter, locale: locale, path: Object.keys(listPath).filter((key) => listPath[key]), rarity: Object.keys(listRank).filter((key) => listRank[key]) }) // eslint-disable-next-line react-hooks/exhaustive-deps }, [listPath, listRank, locale]) return (

{transI18n("lightConeSetting")}

Search
setFilter({ ...filter, name: e.target.value, locale: locale })} type="text" placeholder="LightCone Name" className="input input-accent mt-1 w-full" />
Filter
{Object.keys(listPath).map((key, index) => (
{ setListPath((prev) => ({ ...prev, [key]: !prev[key] })) }} className="w-[50px] h-[50px] hover:bg-gray-600 grid items-center justify-items-center rounded-md shadow-lg cursor-pointer" style={{ backgroundColor: listPath[key] ? "#374151" : "#6B7280" }}> {key}
))}
{Object.keys(listRank).map((key, index) => (
{ setListRank((prev) => ({ ...prev, [key]: !prev[key] })) }} className="w-[50px] h-[50px] hover:bg-gray-600 grid items-center justify-items-center rounded-md shadow-lg cursor-pointer" style={{ backgroundColor: listRank[key] ? "#374151" : "#6B7280" }}>
{key}*
))}
{listLightcone.map((item, index) => (
{ if (avatarSelected) { const avatar = avatars[avatarSelected.id] avatar.profileList[avatar.profileSelect].lightcone = { level: 80, item_id: Number(item.id), rank: 1, promotion: 6 } setAvatar({ ...avatar }) setIsOpenLightcone(false) } }}>
))}
) }