mirror of
https://github.com/facebook/docusaurus.git
synced 2025-07-19 01:28:38 +02:00
chore: clean up ESLint config, enable a few rules (#6514)
* chore: clean up ESLint config, enable a few rules * enable max-len for comments * fix build
This commit is contained in:
parent
b8ccb869f1
commit
aa446b7a9c
167 changed files with 1157 additions and 960 deletions
|
@ -67,7 +67,8 @@ function applyCollapsedStyle(el: HTMLElement, collapsed: boolean) {
|
|||
}
|
||||
|
||||
/*
|
||||
Lex111: Dynamic transition duration is used in Material design, this technique is good for a large number of items.
|
||||
Lex111: Dynamic transition duration is used in Material design, this technique
|
||||
is good for a large number of items.
|
||||
https://material.io/archive/guidelines/motion/duration-easing.html#duration-easing-dynamic-durations
|
||||
https://github.com/mui-org/material-ui/blob/e724d98eba018e55e1a684236a2037e24bcf050c/packages/material-ui/src/styles/createTransitions.js#L40-L43
|
||||
*/
|
||||
|
@ -151,7 +152,8 @@ type CollapsibleElementType = React.ElementType<
|
|||
Pick<React.HTMLAttributes<unknown>, 'className' | 'onTransitionEnd' | 'style'>
|
||||
>;
|
||||
|
||||
// Prevent hydration layout shift before animations are handled imperatively with JS
|
||||
// Prevent hydration layout shift before animations are handled imperatively
|
||||
// with JS
|
||||
function getSSRStyle(collapsed: boolean) {
|
||||
if (ExecutionEnvironment.canUseDOM) {
|
||||
return undefined;
|
||||
|
@ -167,8 +169,9 @@ type CollapsibleBaseProps = {
|
|||
onCollapseTransitionEnd?: (collapsed: boolean) => void;
|
||||
className?: string;
|
||||
|
||||
// This is mostly useful for details/summary component where ssrStyle is not needed (as details are hidden natively)
|
||||
// and can mess-up with the default native behavior of the browser when JS fails to load or is disabled
|
||||
// This is mostly useful for details/summary component where ssrStyle is not
|
||||
// needed (as details are hidden natively) and can mess up with the default
|
||||
// native behavior of the browser when JS fails to load or is disabled
|
||||
disableSSRStyle?: boolean;
|
||||
};
|
||||
|
||||
|
@ -189,7 +192,8 @@ function CollapsibleBase({
|
|||
|
||||
return (
|
||||
<As
|
||||
// @ts-expect-error: the "too complicated type" is produced from "CollapsibleElementType" being a huge union
|
||||
// @ts-expect-error: the "too complicated type" is produced from
|
||||
// "CollapsibleElementType" being a huge union
|
||||
ref={collapsibleRef}
|
||||
style={disableSSRStyle ? undefined : getSSRStyle(collapsed)}
|
||||
onTransitionEnd={(e: React.TransitionEvent) => {
|
||||
|
@ -215,7 +219,7 @@ function CollapsibleLazy({collapsed, ...props}: CollapsibleBaseProps) {
|
|||
}
|
||||
}, [collapsed]);
|
||||
|
||||
// lazyCollapsed updated in effect so that the first expansion transition can work
|
||||
// lazyCollapsed updated in effect so that first expansion transition can work
|
||||
const [lazyCollapsed, setLazyCollapsed] = useState(collapsed);
|
||||
useLayoutEffect(() => {
|
||||
if (mounted) {
|
||||
|
@ -229,9 +233,10 @@ function CollapsibleLazy({collapsed, ...props}: CollapsibleBaseProps) {
|
|||
}
|
||||
|
||||
type CollapsibleProps = CollapsibleBaseProps & {
|
||||
// Lazy allows to delay the rendering when collapsed => it will render children only after hydration, on first expansion
|
||||
// Required prop: it forces to think if content should be server-rendered or not!
|
||||
// This has perf impact on the SSR output and html file sizes
|
||||
// Lazy allows to delay the rendering when collapsed => it will render
|
||||
// children only after hydration, on first expansion
|
||||
// Required prop: it forces to think if content should be server-rendered
|
||||
// or not! This has perf impact on the SSR output and html file sizes
|
||||
// See https://github.com/facebook/docusaurus/issues/4753
|
||||
lazy: boolean;
|
||||
};
|
||||
|
|
|
@ -41,7 +41,7 @@ function Details({summary, children, ...props}: DetailsProps): JSX.Element {
|
|||
const {collapsed, setCollapsed} = useCollapsible({
|
||||
initialState: !props.open,
|
||||
});
|
||||
// We use a separate prop because it must be set only after animation completes
|
||||
// Use a separate prop because it must be set only after animation completes
|
||||
// Otherwise close anim won't work
|
||||
const [open, setOpen] = useState(props.open);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue