All files / publisher/shared/SaveStateNotifications SaveStateNotifications.tsx

100% Statements 5/5
100% Branches 6/6
100% Functions 4/4
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53                              9x               1x                       2x 2x             2x                  
import { Notification } from "@canonical/react-components";
 
type Props = {
  hasSaved: boolean;
  setHasSaved: Function;
  savedError: boolean | Array<{ message: string }>;
  setSavedError: Function;
};
 
function SaveStateNotifications({
  hasSaved,
  setHasSaved,
  savedError,
  setSavedError,
}: Props) {
  return (
    <>
      {hasSaved && (
        <div className="u-fixed-width">
          <Notification
            severity="positive"
            title="Changes applied successfully."
            onDismiss={() => {
              setHasSaved(false);
            }}
          />
        </div>
      )}
 
      {savedError && (
        <div className="u-fixed-width">
          <Notification
            severity="negative"
            title="Error"
            onDismiss={() => {
              setHasSaved(false);
              setSavedError(false);
            }}
          >
            Changes have not been saved.
            <br />
            {savedError === true
              ? "Something went wrong."
              : savedError.map((error) => `${error.message}`).join("\n")}
          </Notification>
        </div>
      )}
    </>
  );
}
 
export default SaveStateNotifications;