alert.tsx 1.2 KB

1234567891011121314151617181920212223242526272829
  1. "use client";
  2. import type { ComponentRenderProps } from "./types";
  3. import { baseClass, getCustomClass } from "./utils";
  4. export function Alert({ element }: ComponentRenderProps) {
  5. const { props } = element;
  6. const customClass = getCustomClass(props);
  7. const alertType = props.type as string;
  8. const alertClass =
  9. alertType === "success"
  10. ? "bg-green-50 dark:bg-green-950 border-green-200 dark:border-green-800 text-green-900 dark:text-green-100"
  11. : alertType === "warning"
  12. ? "bg-yellow-50 dark:bg-yellow-950 border-yellow-200 dark:border-yellow-800 text-yellow-900 dark:text-yellow-100"
  13. : alertType === "error"
  14. ? "bg-red-50 dark:bg-red-950 border-red-200 dark:border-red-800 text-red-900 dark:text-red-100"
  15. : "bg-blue-50 dark:bg-blue-950 border-blue-200 dark:border-blue-800 text-blue-900 dark:text-blue-100";
  16. return (
  17. <div
  18. className={`p-2 rounded border ${alertClass} ${baseClass} ${customClass}`}
  19. >
  20. <div className="text-xs font-medium">{props.title as string}</div>
  21. {props.message ? (
  22. <div className="text-[10px] mt-0.5">{props.message as string}</div>
  23. ) : null}
  24. </div>
  25. );
  26. }