plane/web/components/issues/issue-layouts/properties/with-display-properties-HOC.tsx

33 lines
997 B
TypeScript

import { observer } from "mobx-react-lite";
import { ReactNode } from "react";
import {
ICycleIssuesFilterStore,
IModuleIssuesFilterStore,
IProfileIssuesFilterStore,
IProjectIssuesFilterStore,
IViewIssuesFilterStore,
} from "store_legacy/issues";
import { IIssueDisplayProperties } from "types";
interface IWithDisplayPropertiesHOC {
issuesFilter:
| IProjectIssuesFilterStore
| IModuleIssuesFilterStore
| ICycleIssuesFilterStore
| IViewIssuesFilterStore
| IProfileIssuesFilterStore;
getShouldRenderProperty: (displayProperties: IIssueDisplayProperties) => boolean;
children: ReactNode;
}
export const WithDisplayPropertiesHOC = observer(
({ issuesFilter, getShouldRenderProperty, children }: IWithDisplayPropertiesHOC) => {
const displayProperties = issuesFilter.issueFilters.displayProperties;
const shouldRenderProperty = getShouldRenderProperty(displayProperties);
if (!shouldRenderProperty) return null;
return <>{children}</>;
}
);