stutiagrawal commited on
Commit
98feb0f
·
unverified ·
1 Parent(s): 018e675

Adding speaker labels under the claims in the UI

Browse files
ui/claimcheck-ui/src/components/ClaimsTable.tsx CHANGED
@@ -68,7 +68,18 @@ export function ClaimsTable() {
68
  <tbody>
69
  {rows.map((r: any, idx: number) => (
70
  <tr key={idx} className="border-t">
71
- <td className="px-4 py-2 align-top">{r.claim?.text}</td>
 
 
 
 
 
 
 
 
 
 
 
72
  <td className="px-4 py-2 align-top">
73
  {r.verdict && (
74
  <span className={`inline-flex items-center px-2 py-1 rounded-md border text-xs ${verdictColor(r.verdict.label)}`}>
 
68
  <tbody>
69
  {rows.map((r: any, idx: number) => (
70
  <tr key={idx} className="border-t">
71
+ <td className="px-4 py-2 align-top">
72
+ <div>
73
+ <div>{r.claim?.text}</div>
74
+ {r.claim?.speaker && (
75
+ <div className="mt-1">
76
+ <span className="inline-flex items-center px-2 py-0.5 rounded-full bg-muted text-xs text-muted-foreground">
77
+ {r.claim.speaker}
78
+ </span>
79
+ </div>
80
+ )}
81
+ </div>
82
+ </td>
83
  <td className="px-4 py-2 align-top">
84
  {r.verdict && (
85
  <span className={`inline-flex items-center px-2 py-1 rounded-md border text-xs ${verdictColor(r.verdict.label)}`}>
ui/claimcheck-ui/src/store/appStore.ts CHANGED
@@ -10,6 +10,7 @@ export type StepStatus = 'idle' | 'running' | 'done' | 'error'
10
  export type UIState = {
11
  tab: 0 | 1 | 2
12
  filter: 'all' | VerdictLabel
 
13
  evidenceOpen: boolean
14
  selectedClaimId?: string
15
  }
@@ -21,6 +22,7 @@ type Store = {
21
  ui: UIState
22
  setTab: (tab: 0 | 1 | 2) => void
23
  setFilter: (f: 'all' | VerdictLabel) => void
 
24
  openEvidence: (claimId: string) => void
25
  closeEvidence: () => void
26
  startRun: (kind: InputKind, payload: { file?: File; text?: string }) => Promise<void>
@@ -43,9 +45,10 @@ export const useAppStore = create<Store>()(
43
  runs: [],
44
  currentRunId: undefined,
45
  steps: initialSteps,
46
- ui: { tab: 0, filter: 'all', evidenceOpen: false },
47
  setTab: (tab) => set((s) => ({ ui: { ...s.ui, tab } })),
48
  setFilter: (filter) => set((s) => ({ ui: { ...s.ui, filter } })),
 
49
  openEvidence: (selectedClaimId) => set((s) => ({ ui: { ...s.ui, evidenceOpen: true, selectedClaimId } })),
50
  closeEvidence: () => set((s) => ({ ui: { ...s.ui, evidenceOpen: false, selectedClaimId: undefined } })),
51
 
 
10
  export type UIState = {
11
  tab: 0 | 1 | 2
12
  filter: 'all' | VerdictLabel
13
+ speakerFilter: 'all' | string
14
  evidenceOpen: boolean
15
  selectedClaimId?: string
16
  }
 
22
  ui: UIState
23
  setTab: (tab: 0 | 1 | 2) => void
24
  setFilter: (f: 'all' | VerdictLabel) => void
25
+ setSpeakerFilter: (f: 'all' | string) => void
26
  openEvidence: (claimId: string) => void
27
  closeEvidence: () => void
28
  startRun: (kind: InputKind, payload: { file?: File; text?: string }) => Promise<void>
 
45
  runs: [],
46
  currentRunId: undefined,
47
  steps: initialSteps,
48
+ ui: { tab: 0, filter: 'all', speakerFilter: 'all', evidenceOpen: false },
49
  setTab: (tab) => set((s) => ({ ui: { ...s.ui, tab } })),
50
  setFilter: (filter) => set((s) => ({ ui: { ...s.ui, filter } })),
51
+ setSpeakerFilter: (speakerFilter) => set((s) => ({ ui: { ...s.ui, speakerFilter } })),
52
  openEvidence: (selectedClaimId) => set((s) => ({ ui: { ...s.ui, evidenceOpen: true, selectedClaimId } })),
53
  closeEvidence: () => set((s) => ({ ui: { ...s.ui, evidenceOpen: false, selectedClaimId: undefined } })),
54