* Isolated spinner glyph for a field that is being resolved asynchronously. * Owns its own 80ms animation timer so ticks only re-render this tiny leaf, * not the entire ElicitationFormDialog (~1200 lines + renderFormFields). * Mounted/unmounted by the parent via the `isResolving` condition. * *
()
| 47 | * column alignment here (other checkbox states are width-1 glyphs). |
| 48 | */ |
| 49 | function ResolvingSpinner() { |
| 50 | const $ = _c(4); |
| 51 | const [frame, setFrame] = useState(0); |
| 52 | let t0; |
| 53 | let t1; |
| 54 | if ($[0] === Symbol.for("react.memo_cache_sentinel")) { |
| 55 | t0 = () => { |
| 56 | const timer = setInterval(setFrame, 80, advanceSpinnerFrame); |
| 57 | return () => clearInterval(timer); |
| 58 | }; |
| 59 | t1 = []; |
| 60 | $[0] = t0; |
| 61 | $[1] = t1; |
| 62 | } else { |
| 63 | t0 = $[0]; |
| 64 | t1 = $[1]; |
| 65 | } |
| 66 | useEffect(t0, t1); |
| 67 | const t2 = RESOLVING_SPINNER_CHARS[frame]; |
| 68 | let t3; |
| 69 | if ($[2] !== t2) { |
| 70 | t3 = <Text color="warning">{t2}</Text>; |
| 71 | $[2] = t2; |
| 72 | $[3] = t3; |
| 73 | } else { |
| 74 | t3 = $[3]; |
| 75 | } |
| 76 | return t3; |
| 77 | } |
| 78 | |
| 79 | /** Format an ISO date/datetime for display, keeping the ISO value for submission. */ |
| 80 | function formatDateDisplay(isoValue: string, schema: PrimitiveSchemaDefinition): string { |
nothing calls this directly
no outgoing calls
no test coverage detected