import { Text, Box, Heading, Image, Center, Button, Flex, VStack, Divider, useToast, FormControl, FormLabel, FormHelperText, Input, FormErrorMessage, HStack, Wrap, useMediaQuery, Avatar, Textarea, Table, Thead, Tr, Th, Tbody, Td, IconButton, useDisclosure, Modal, ModalOverlay, ModalContent, ModalHeader, ModalBody, ModalFooter, Select, NumberInput, NumberInputField, NumberInputStepper, NumberIncrementStepper, NumberDecrementStepper ,AlertDialog, AlertDialogOverlay, AlertDialogContent, AlertDialogHeader, AlertDialogBody, AlertDialogFooter} from "@chakra-ui/react"
import Card from "components/card"
import PageContainer from "layouts/page-container"
import Sidebar from "layouts/sidebar/sidebar"
import React, { useEffect, useState } from "react"
import { adminLinks, settingLinks } from "src/data/links"
import { requestApi } from "utils/axios/request"
import { config } from "configs/config"
import { getSvgIcon } from "components/svg-icon"
import { Navbar, NavbarType } from "src/types/user"
import { cloneDeep } from "lodash"
import { IDType } from "src/types/id"
import { Story } from "src/types/story"
import PageContainer1 from "layouts/page-container1"
const UserNavbarPage = () => {
const [navbars, setNavbars]:[Navbar[],any] = useState([])
const [series, setSeries]: [Story[], any] = useState([])
const [currentNavbar, setCurrentNavbar]: [Navbar, any] = useState(null)
const { isOpen, onOpen, onClose } = useDisclosure()
const toast = useToast()
useEffect(() => {
getNavbars()
getSeries()
}, [])
const getNavbars = async () => {
const res = await requestApi.get("/navbars")
setNavbars(res.data)
}
const getSeries = async () => {
const res = await requestApi.get(`/story/posts/editor?type=${IDType.Series}`)
setSeries(res.data)
}
const submitNavbar = async () => {
if (!currentNavbar.label || !currentNavbar.value) {
toast({
description: "值不能为空",
status: "error",
duration: 2000,
isClosable: true,
})
return
}
if (currentNavbar.label.length > config.user.navbarMaxLen) {
toast({
description: `Label长度不能超过${config.user.navbarMaxLen}`,
status: "error",
duration: 2000,
isClosable: true,
})
return
}
await requestApi.post(`/navbar`, currentNavbar)
setCurrentNavbar(null)
onClose()
getNavbars()
}
const onAddNavbar = () => {
setCurrentNavbar({ weight: 0, type: NavbarType.Link, label: "", value: "" })
onOpen()
}
const onEditNavbar = nav => {
setCurrentNavbar(nav)
onOpen()
}
const onNavbarChange = () => {
const nv = cloneDeep(currentNavbar)
setCurrentNavbar(nv)
}
const onDeleteNavbar = async id => {
requestApi.delete(`/navbar/${id}`)
setTimeout( () => getNavbars(),300)
}
return (
<>
{
navbars.map((nv,i) => Label
Value
Weight