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

33 lines
989 B
TypeScript
Raw Normal View History

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;
2023-12-15 13:48:10 +00:00
shouldRenderProperty?: boolean;
displayPropertyKey: string;
children: ReactNode;
}
export const WithDisplayPropertiesHOC = observer(
2023-12-15 13:48:10 +00:00
({ issuesFilter, shouldRenderProperty = true, displayPropertyKey, children }: IWithDisplayPropertiesHOC) => {
const shouldDisplayPropertyFromFilters = issuesFilter.issueFilters.displayProperties[displayPropertyKey];
2023-12-15 13:48:10 +00:00
const renderProperty = shouldDisplayPropertyFromFilters && shouldRenderProperty;
2023-12-15 13:48:10 +00:00
if (!renderProperty) return null;
return <>{children}</>;
}
);