// Copyright 2017-2026 @pezkuwi/react-components authors & contributors // SPDX-License-Identifier: Apache-2.0 import React, { useEffect, useState } from 'react'; import { nextTick } from '@pezkuwi/util'; import Spinner from './Spinner.js'; interface Props { children: React.ReactNode[]; isActive?: boolean; } function NextTick ({ children, isActive = true }: Props): React.ReactElement { const [visibility, setVisibility] = useState(() => new Array(children.length).fill(false)); useEffect((): void => { if (isActive) { const index = visibility.findIndex((v) => !v); if (index !== -1) { nextTick(() => setVisibility( visibility.map((v, i) => (i === index) || v) ) ); } } }, [isActive, visibility]); return ( <> {isActive ? visibility.map((isVisible, index) => isVisible && children[index]) : } ); } export default React.memo(NextTick);