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 } 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" import { HomeSidebar } from "src/types/misc" import { SearchFilter } from "src/types/search" const SidebarsPage = () => { const [sidebars, setSidebars]:[HomeSidebar[],any] = useState([]) const [currentSidebar, setCurrentSidebar]: [HomeSidebar, any] = useState(null) const { isOpen, onOpen, onClose } = useDisclosure() const toast = useToast() useEffect(() => { getSidebars() }, []) const getSidebars = async () => { const res = await requestApi.get("/sidebars") setSidebars(res.data) } const submitNavbar = async () => { await requestApi.get(`/tag/info/${currentSidebar.tagName}`) await requestApi.post(`/sidebar`, currentSidebar) setCurrentSidebar(null) onClose() getSidebars() } const onAddNavbar = () => { setCurrentSidebar({tagName: "", sort: SearchFilter.Recent , displayCount:5, weight: 0}) onOpen() } const onEditNavbar = nav => { setCurrentSidebar(nav) onOpen() } const onSidebarChange = () => { const nv = cloneDeep(currentSidebar) setCurrentSidebar(nv) } const onDeleteNavbar = async id => { requestApi.delete(`/sidebar/${id}`) setTimeout( () => getSidebars(),300) } return ( <> 侧边栏设置 { sidebars.map((nv,i) => ) }
Tag Name Sort Display count Weight
{nv.tagName} {nv.sort} {nv.displayCount} {nv.weight} onEditNavbar(nv)}/> onDeleteNavbar(nv.id)} />
{currentSidebar && {currentSidebar.tagName ? "编辑侧边栏" : "新建侧边栏"} Tag name { currentSidebar.tagName = e.currentTarget.value; onSidebarChange() }}> {/* Sort { currentSidebar.value = e.currentTarget.value; onSidebarChange() }} placeholder="enter a url, e.g /search"/> */} Display count { currentSidebar.displayCount = parseInt(e); onSidebarChange() }}> Weight { currentSidebar.weight = parseInt(e); onSidebarChange() }}> } ) } export default SidebarsPage