mirror of
https://github.com/zhigang1992/react.git
synced 2026-04-29 04:35:32 +08:00
docs: remove manual are-equal
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import React, { PropsWithChildren, useEffect, useRef } from 'react'
|
||||
import React, { useEffect, useRef } from 'react'
|
||||
import Router from 'next/router'
|
||||
import { useTheme, Spacer } from 'components'
|
||||
import SideItem, { SideItemProps, Sides } from './side-item'
|
||||
@@ -11,13 +11,6 @@ export type SideGroupProps = Props & SideItemProps
|
||||
|
||||
export type SideChildren = Sides | Array<Sides>
|
||||
|
||||
const areEqual = (
|
||||
preProps: Readonly<PropsWithChildren<SideGroupProps>>,
|
||||
nextProps: Readonly<PropsWithChildren<SideGroupProps>>,
|
||||
): boolean => {
|
||||
return preProps.sides.length === nextProps.sides.length
|
||||
}
|
||||
|
||||
export const SideGroup: React.FC<{ sides?: SideChildren }> = React.memo(({ sides }) => {
|
||||
if (!sides) return null
|
||||
sides = Array.isArray(sides) ? sides : [sides]
|
||||
@@ -35,7 +28,7 @@ export const Sidebar: React.FC<SideGroupProps> = React.memo(({ sides }) => {
|
||||
updateSidebarScrollHeight(boxRef.current.scrollTop || 0)
|
||||
})
|
||||
}, [])
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
if (!boxRef.current) return
|
||||
boxRef.current.scrollTo({ top: sidebarScrollHeight })
|
||||
@@ -81,6 +74,6 @@ export const Sidebar: React.FC<SideGroupProps> = React.memo(({ sides }) => {
|
||||
`}</style>
|
||||
</div>
|
||||
)
|
||||
}, areEqual)
|
||||
})
|
||||
|
||||
export default Sidebar
|
||||
|
||||
@@ -23,8 +23,10 @@ const SideItem: React.FC<React.PropsWithChildren<SideItemProps>> = React.memo(({
|
||||
<>
|
||||
{sides.map((side, index) => {
|
||||
return (
|
||||
<div key={`${side.name}-${index}`} className="item">
|
||||
{!side.url && <ActiveCatalog name={side.name} localeName={side.localeName} />}
|
||||
<div key={`${side.localeName || side.name}-${index}`} className="item">
|
||||
{!side.url && <ActiveCatalog name={side.name}
|
||||
localeName={side.localeName}
|
||||
key={side.localeName || side.name} />}
|
||||
{side.url && (
|
||||
<div className="link">
|
||||
<ActiveLink href={side.url}><a>{side.name}</a></ActiveLink>
|
||||
|
||||
Reference in New Issue
Block a user