import { SetStateAction, useEffect, useState } from "react"; import { GLOBAL_VIEW_TRACKER_ELEMENTS } from "@plane/constants"; import { Button } from "@plane/ui"; import { LockedComponent } from "../icons/locked-component"; type Props = { isLocked: boolean; areFiltersEqual: boolean; isOwner: boolean; isAuthorizedUser: boolean; setIsModalOpen: (value: SetStateAction) => void; handleUpdateView: () => void; lockedTooltipContent?: string; }; export const UpdateViewComponent = (props: Props) => { const { isLocked, areFiltersEqual, isOwner, isAuthorizedUser, setIsModalOpen, handleUpdateView, lockedTooltipContent, } = props; const [isUpdating, setIsUpdating] = useState(false); useEffect(() => { if (areFiltersEqual) { setIsUpdating(false); } }, [areFiltersEqual]); // Change state while updating view to have a feedback const updateButton = isUpdating ? ( ) : ( ); return (
{isLocked ? ( ) : ( !areFiltersEqual && isAuthorizedUser && ( <> {isOwner && <>{updateButton}} ) )}
); };