plane/web/components/issues/issue-layouts/properties/with-display-properties-HOC.tsx
2023-12-15 19:18:10 +05:30

33 lines
989 B
TypeScript

import { observer } from "mobx-react-lite";
import { ReactNode } from "react";
import {
ICycleIssuesFilterStore,
IModuleIssuesFilterStore,
IProfileIssuesFilterStore,
IProjectIssuesFilterStore,
IViewIssuesFilterStore,
} from "store_legacy/issues";
interface IWithDisplayPropertiesHOC {
issuesFilter:
| IProjectIssuesFilterStore
| IModuleIssuesFilterStore
| ICycleIssuesFilterStore
| IViewIssuesFilterStore
| IProfileIssuesFilterStore;
shouldRenderProperty?: boolean;
displayPropertyKey: string;
children: ReactNode;
}
export const WithDisplayPropertiesHOC = observer(
({ issuesFilter, shouldRenderProperty = true, displayPropertyKey, children }: IWithDisplayPropertiesHOC) => {
const shouldDisplayPropertyFromFilters = issuesFilter.issueFilters.displayProperties[displayPropertyKey];
const renderProperty = shouldDisplayPropertyFromFilters && shouldRenderProperty;
if (!renderProperty) return null;
return <>{children}</>;
}
);