MCPcopy Create free account
hub / github.com/triggerdotdev/jsonhero-web / ValueIcon

Function ValueIcon

app/components/ValueIcon.tsx:41–179  ·  view source on GitHub ↗
({
  type,
  size = ValueIconSize.Small,
  monochrome = false,
})

Source from the content-addressed store, hash-verified

39}
40
41export const ValueIcon: FunctionComponent<ValueIconProps> = ({
42 type,
43 size = ValueIconSize.Small,
44 monochrome = false,
45}) => {
46 let classes = monochrome ? `text-slate-300` : colorForTypeName(type.name);
47 switch (size) {
48 case ValueIconSize.Small:
49 classes += " h-4 w-4";
50 break;
51 case ValueIconSize.Medium:
52 classes += " h-6 w-6";
53 break;
54 }
55
56 switch (type.name) {
57 case "object": {
58 return <CubeIcon className={classes} />;
59 }
60 case "array": {
61 return <CollectionIcon className={classes} />;
62 }
63 case "null": {
64 return <EyeOffIcon className={classes} />;
65 }
66 case "bool": {
67 return <CheckCircleIcon className={classes} />;
68 }
69 case "int": {
70 if (type.format == null) {
71 return <HashtagIcon className={classes} />;
72 }
73 switch (type.format.name) {
74 case "timestamp": {
75 return <CalendarIcon className={classes} />;
76 }
77 }
78 }
79 case "float": {
80 return <HashtagIcon className={classes} />;
81 }
82 case "string": {
83 if (type.format == null) {
84 return <StringIcon className={classes} />;
85 }
86
87 switch (type.format.name) {
88 case "timestamp": {
89 return <CalendarIcon className={classes} />;
90 }
91 case "datetime": {
92 switch (type.format.parts) {
93 case "time":
94 return <ClockIcon className={classes} />;
95 }
96 return <CalendarIcon className={classes} />;
97 }
98 case "email": {

Callers

nothing calls this directly

Calls 1

colorForTypeNameFunction · 0.90

Tested by

no test coverage detected