fix: toggling AppDetailNav causes unnecessary component rerenders (#3718)

This commit is contained in:
legao 2024-04-24 04:07:28 +00:00 committed by GitHub
commit 40e36e9b52
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 314 additions and 276 deletions

View file

@ -40,7 +40,7 @@ const AppNav = () => {
const { t } = useTranslation()
const { appId } = useParams()
const { isCurrentWorkspaceManager } = useAppContext()
const { appDetail } = useAppStore()
const appDetail = useAppStore(state => state.appDetail)
const [showNewAppDialog, setShowNewAppDialog] = useState(false)
const [showNewAppTemplateDialog, setShowNewAppTemplateDialog] = useState(false)
const [showCreateFromDSLModal, setShowCreateFromDSLModal] = useState(false)

View file

@ -31,7 +31,7 @@ const Nav = ({
onLoadmore,
isApp,
}: INavProps) => {
const { setAppDetail } = useAppStore()
const setAppDetail = useAppStore(state => state.setAppDetail)
const [hovered, setHovered] = useState(false)
const segment = useSelectedLayoutSegment()
const isActived = Array.isArray(activeSegment) ? activeSegment.includes(segment!) : segment === activeSegment

View file

@ -35,7 +35,7 @@ const NavSelector = ({ curNav, navs, createText, isApp, onCreate, onLoadmore }:
const { t } = useTranslation()
const router = useRouter()
const { isCurrentWorkspaceManager } = useAppContext()
const { setAppDetail } = useAppStore()
const setAppDetail = useAppStore(state => state.setAppDetail)
const handleScroll = useCallback(debounce((e) => {
if (typeof onLoadmore === 'function') {