'use client'; import { getTextSpeakerData, setTextSpeakerData } from "@/utils"; import { useState } from "react"; import z from "zod"; import { TextSpeakerItemSchema } from "@/interfaces"; import IconClick from "@/components/IconClick"; import IMAGES from "@/config/images"; interface TextCardProps { item: z.infer; handleUse: (item: z.infer) => void; handleDel: (item: z.infer) => void; } function TextCard({ item, handleUse, handleDel }: TextCardProps) { const onUseClick = () => { handleUse(item); } const onDelClick = () => { handleDel(item); } return (
{item.text}
{item.ipa}
); } interface SaveListProps { show?: boolean; handleUse: (item: z.infer) => void; } export default function SaveList({ show = false, handleUse }: SaveListProps) { const [data, setData] = useState(getTextSpeakerData()); const handleDel = (item: z.infer) => { const current_data = getTextSpeakerData(); current_data.splice( current_data.findIndex(v => v.text === item.text) ); setTextSpeakerData(current_data); } const refresh = () => { setData(getTextSpeakerData()); } const handleDeleteAll = () => { const yesorno = prompt('确定删光吗?(Y/N)')?.trim(); if (yesorno && (yesorno === 'Y' || yesorno === 'y')) { setTextSpeakerData([]); refresh(); } } if (show) return (
    {data.map(v => )}
); else return (<>); }