forked from github/plane
3d09a69d58
* fix: eslint fixes --------- Co-authored-by: gurusainath <gurusainath007@gmail.com>
27 lines
1.0 KiB
TypeScript
27 lines
1.0 KiB
TypeScript
import { ReactNode } from "react";
|
|
import { observer } from "mobx-react-lite";
|
|
import { IIssueDisplayProperties } from "@plane/types";
|
|
|
|
interface IWithDisplayPropertiesHOC {
|
|
displayProperties: IIssueDisplayProperties;
|
|
shouldRenderProperty?: (displayProperties: IIssueDisplayProperties) => boolean;
|
|
displayPropertyKey: keyof IIssueDisplayProperties | (keyof IIssueDisplayProperties)[];
|
|
children: ReactNode;
|
|
}
|
|
|
|
export const WithDisplayPropertiesHOC = observer(
|
|
({ displayProperties, shouldRenderProperty, displayPropertyKey, children }: IWithDisplayPropertiesHOC) => {
|
|
let shouldDisplayPropertyFromFilters = false;
|
|
if (Array.isArray(displayPropertyKey))
|
|
shouldDisplayPropertyFromFilters = displayPropertyKey.every((key) => !!displayProperties[key]);
|
|
else shouldDisplayPropertyFromFilters = !!displayProperties[displayPropertyKey];
|
|
|
|
const renderProperty =
|
|
shouldDisplayPropertyFromFilters && (shouldRenderProperty ? shouldRenderProperty(displayProperties) : true);
|
|
|
|
if (!renderProperty) return null;
|
|
|
|
return <>{children}</>;
|
|
}
|
|
);
|