alert.tsx 878 B

123456789101112131415161718192021222324252627
  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 border-green-200"
  11. : alertType === "warning"
  12. ? "bg-yellow-50 border-yellow-200"
  13. : alertType === "error"
  14. ? "bg-red-50 border-red-200"
  15. : "bg-blue-50 border-blue-200";
  16. return (
  17. <div className={`p-2 rounded border ${alertClass} ${baseClass} ${customClass}`}>
  18. <div className="text-xs font-medium">{props.title as string}</div>
  19. {props.message ? (
  20. <div className="text-[10px] mt-0.5">{props.message as string}</div>
  21. ) : null}
  22. </div>
  23. );
  24. }