fleet/frontend/components/DataError/DataError.tsx
Marko Lisica 8162d052bf
Icons improvements (making frontend consistent with Figma component library) (#14185)
# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [ ] Manual QA for all new/changed functionality

---------

Co-authored-by: Gabriel Hernandez <ghernandez345@gmail.com>
2023-10-31 16:06:38 +00:00

57 lines
1.4 KiB
TypeScript

import React from "react";
import classnames from "classnames";
import CustomLink from "components/CustomLink";
import Icon from "components/Icon";
const baseClass = "data-error";
interface IDataErrorProps {
/** the description text displayed under the header */
description?: string;
children?: React.ReactNode;
card?: boolean;
className?: string;
}
const DEFAULT_DESCRIPTION = "Refresh the page or log in again.";
const DataError = ({
description = DEFAULT_DESCRIPTION,
children,
card,
className,
}: IDataErrorProps): JSX.Element => {
const classes = classnames(baseClass, className);
return (
<div className={classes}>
<div className={`${baseClass}__${card ? "card" : "inner"}`}>
<div className="info">
<span className="info__header">
<Icon name="error" />
Something&apos;s gone wrong.
</span>
<>
{children || (
<>
<span className="info__data">{description}</span>
<span className="info__data">
If this keeps happening, please&nbsp;
<CustomLink
url="https://github.com/fleetdm/fleet/issues/new/choose"
text="file an issue"
newTab
/>
</span>
</>
)}
</>
</div>
</div>
</div>
);
};
export default DataError;