1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-24 15:59:41 +02:00

refactor(GPU): refactor to colocate and simplify UI work [EE-5127] (#8593)

* refactor to colocate and simplify

* fix(insights): text size to match portainer views

---------

Co-authored-by: testa113 <testa113>
This commit is contained in:
Ali 2023-03-09 22:06:57 +13:00 committed by GitHub
parent fb6e26a302
commit 2cc80e5e5d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 52 additions and 61 deletions

View file

@ -1,7 +1,6 @@
import clsx from 'clsx';
import { Lightbulb, X } from 'lucide-react';
import { ReactNode, useMemo } from 'react';
import sanitize from 'sanitize-html';
import { ReactNode } from 'react';
import { useStore } from 'zustand';
import { Button } from '@@/buttons';
@ -15,25 +14,11 @@ export type Props = {
insightCloseId?: string; // set if you want to be able to close the box and not show it again
};
export function InsightsBox({
header,
content,
setHtmlContent,
insightCloseId,
}: Props) {
export function InsightsBox({ header, content, insightCloseId }: Props) {
// allow to close the box and not show it again in local storage with zustand
const { addInsightIDClosed, isClosed } = useStore(insightStore);
const isInsightClosed = isClosed(insightCloseId);
// allow angular views to set html messages for the insights box
const htmlContent = useMemo(() => {
if (setHtmlContent && typeof content === 'string') {
// eslint-disable-next-line react/no-danger
return <div dangerouslySetInnerHTML={{ __html: sanitize(content) }} />;
}
return null;
}, [setHtmlContent, content]);
if (isInsightClosed) {
return null;
}
@ -44,10 +29,16 @@ export function InsightsBox({
<Lightbulb className="h-4 text-warning-7 th-highcontrast:text-warning-6 th-dark:text-warning-6" />
</div>
<div>
<p className={clsx('mb-2 font-bold', insightCloseId && 'pr-4')}>
<p
className={clsx(
// text-[0.9em] matches .form-horizontal .control-label font-size used in many labels in portainer
'mb-2 text-[0.9em] font-medium',
insightCloseId && 'pr-4'
)}
>
{header}
</p>
<div>{htmlContent || content}</div>
<div className="small">{content}</div>
</div>
{insightCloseId && (
<Button