Files
inkling/src/renderer/inbox/components/EditableField.tsx
altair823 6b522b31d0 feat(inbox): React shell + store + component stubs (v0.2)
Task 22 of the slice plan. Wires the Inbox window's renderer:
- index.html (replaces the placeholder shipped in Task 2) with
  the full layout styles + module script.
- api.ts re-exports window.inkling.inbox as a typed InboxApi.
- recoveryToast.ts persists per-day toast dismissal in
  localStorage (KST date key) so the banner never re-fires
  after the user closes it.
- store.ts: zustand store with notes, continuity, pendingCount,
  ollamaStatus, loadInitial(), refreshMeta(), upsert/remove.
- main.tsx mounts <App />.
- App.tsx orchestrates loadInitial + onNoteUpdated subscription
  + window-focus refresh, renders header / banners / note list.
- 7 component stubs (NoteCard / EditableField / IntentBanner /
  RecoveryToast / ContinuityBadge / PendingBanner / OllamaBanner)
  so the shell typechecks today; Tasks 23-28 swap each in.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 12:16:08 +09:00

10 lines
276 B
TypeScript

import React, { CSSProperties } from 'react';
export function EditableField(props: {
value: string;
onSave: (next: string) => Promise<void>;
style?: CSSProperties;
singleLine?: boolean;
}): React.ReactElement {
return <div style={props.style}>{props.value}</div>;
}