Prevent simultaneous animation warning

This commit is contained in:
IRBorisov 2024-05-19 11:05:02 +03:00
parent 8464a97a0b
commit 04337648bb
2 changed files with 11 additions and 19 deletions

View File

@ -7,22 +7,10 @@ import { CProps } from '../props';
interface AnimateFadeProps extends CProps.AnimatedDiv { interface AnimateFadeProps extends CProps.AnimatedDiv {
noFadeIn?: boolean; noFadeIn?: boolean;
noFadeOut?: boolean; noFadeOut?: boolean;
removeContent?: boolean;
hideContent?: boolean; hideContent?: boolean;
} }
function AnimateFade({ function AnimateFade({ style, noFadeIn, noFadeOut, children, hideContent, ...restProps }: AnimateFadeProps) {
style,
noFadeIn,
noFadeOut,
children,
removeContent,
hideContent,
...restProps
}: AnimateFadeProps) {
if (removeContent) {
return null;
}
return ( return (
<motion.div <motion.div
tabIndex={-1} tabIndex={-1}

View File

@ -18,12 +18,16 @@ interface DataLoaderProps extends CProps.AnimatedDiv {
function DataLoader({ id, isLoading, hasNoData, error, children, ...restProps }: DataLoaderProps) { function DataLoader({ id, isLoading, hasNoData, error, children, ...restProps }: DataLoaderProps) {
return ( return (
<AnimatePresence mode='wait'> <AnimatePresence mode='wait'>
<AnimateFade id={id} key={`${id}-data`} removeContent={isLoading || !!error || hasNoData} {...restProps}> {!isLoading && !error && !hasNoData ? (
{children} <AnimateFade id={id} key={`${id}-data`} {...restProps}>
</AnimateFade> {children}
<AnimateFade key={`${id}-no-data`} removeContent={isLoading || !!error || !hasNoData} {...restProps}> </AnimateFade>
Данные не загружены ) : null}
</AnimateFade> {!isLoading && !error && hasNoData ? (
<AnimateFade key={`${id}-no-data`} {...restProps}>
Данные не загружены
</AnimateFade>
) : null}
{isLoading ? <Loader key={`${id}-loader`} /> : null} {isLoading ? <Loader key={`${id}-loader`} /> : null}
{error ? <InfoError key={`${id}-error`} error={error} /> : null} {error ? <InfoError key={`${id}-error`} error={error} /> : null}
</AnimatePresence> </AnimatePresence>