maribakulj commited on
Commit
f80bbb5
Β·
unverified Β·
2 Parent(s): 5427296021b245

Merge pull request #33 from maribakulj/claude/find-commit-dcec666-sI5Qn

Browse files
frontend/src/components/SearchBar.tsx CHANGED
@@ -96,6 +96,7 @@ export default function SearchBar({ onSelectResult }: Props) {
96
  {results.map((r) => (
97
  <li key={r.page_id}>
98
  <button
 
99
  onClick={() => {
100
  setOpen(false)
101
  onSelectResult?.(r)
 
96
  {results.map((r) => (
97
  <li key={r.page_id}>
98
  <button
99
+ type="button"
100
  onClick={() => {
101
  setOpen(false)
102
  onSelectResult?.(r)
frontend/src/components/retro/RetroButton.tsx CHANGED
@@ -14,6 +14,7 @@ export default function RetroButton({
14
  pressed = false,
15
  className = '',
16
  disabled,
 
17
  ...rest
18
  }: Props) {
19
  const padding = size === 'sm' ? 'px-2 py-[1px]' : 'px-3 py-[3px]'
@@ -21,6 +22,7 @@ export default function RetroButton({
21
 
22
  return (
23
  <button
 
24
  className={`
25
  ${padding} ${fontSize}
26
  font-retro font-medium
 
14
  pressed = false,
15
  className = '',
16
  disabled,
17
+ type = 'button',
18
  ...rest
19
  }: Props) {
20
  const padding = size === 'sm' ? 'px-2 py-[1px]' : 'px-3 py-[3px]'
 
22
 
23
  return (
24
  <button
25
+ type={type}
26
  className={`
27
  ${padding} ${fontSize}
28
  font-retro font-medium
frontend/src/components/retro/RetroIcon.tsx CHANGED
@@ -20,6 +20,7 @@ export default function RetroIcon({
20
  }: Props) {
21
  return (
22
  <button
 
23
  onClick={onClick}
24
  className={`
25
  flex flex-col items-center gap-1
@@ -27,7 +28,6 @@ export default function RetroIcon({
27
  cursor-pointer select-none
28
  ${className}
29
  `}
30
- onDoubleClick={onClick}
31
  >
32
  {/* Icon box */}
33
  <div
 
20
  }: Props) {
21
  return (
22
  <button
23
+ type="button"
24
  onClick={onClick}
25
  className={`
26
  flex flex-col items-center gap-1
 
28
  cursor-pointer select-none
29
  ${className}
30
  `}
 
31
  >
32
  {/* Icon box */}
33
  <div
frontend/src/components/retro/RetroMenuBar.tsx CHANGED
@@ -30,6 +30,7 @@ export default function RetroMenuBar({ items = [], right, className = '' }: Prop
30
  >
31
  {items.map((item, i) => (
32
  <button
 
33
  key={i}
34
  onClick={item.onClick}
35
  disabled={item.disabled}
 
30
  >
31
  {items.map((item, i) => (
32
  <button
33
+ type="button"
34
  key={i}
35
  onClick={item.onClick}
36
  disabled={item.disabled}
frontend/src/components/retro/RetroWindow.tsx CHANGED
@@ -29,7 +29,7 @@ export default function RetroWindow({
29
  return (
30
  <div
31
  className={`
32
- flex flex-col
33
  border-retro border-retro-black bg-retro-gray
34
  shadow-retro
35
  ${className}
@@ -45,6 +45,7 @@ export default function RetroWindow({
45
  >
46
  {onClose && (
47
  <button
 
48
  onClick={onClose}
49
  className="
50
  w-[14px] h-[14px] flex items-center justify-center
 
29
  return (
30
  <div
31
  className={`
32
+ flex flex-col min-h-0
33
  border-retro border-retro-black bg-retro-gray
34
  shadow-retro
35
  ${className}
 
45
  >
46
  {onClose && (
47
  <button
48
+ type="button"
49
  onClick={onClose}
50
  className="
51
  w-[14px] h-[14px] flex items-center justify-center
frontend/src/pages/Admin.tsx CHANGED
@@ -574,11 +574,12 @@ export default function Admin({ onHome }: Props) {
574
  ]}
575
  />
576
 
577
- <div className="flex flex-1 overflow-hidden p-1 gap-1">
578
  {/* Sidebar */}
579
  <RetroWindow title="Corpus" className="w-56 shrink-0" scrollable>
580
  <div className="flex flex-col">
581
  <button
 
582
  onClick={() => { setShowCreate(true); setSelectedCorpusId(null) }}
583
  className={`
584
  w-full text-left px-2 py-[4px] text-retro-sm font-bold
@@ -593,6 +594,7 @@ export default function Admin({ onHome }: Props) {
593
  )}
594
  {corpora.map((c) => (
595
  <button
 
596
  key={c.id}
597
  onClick={() => { setSelectedCorpusId(c.id); setShowCreate(false) }}
598
  className={`
 
574
  ]}
575
  />
576
 
577
+ <div className="flex flex-1 min-h-0 overflow-hidden p-1 gap-1">
578
  {/* Sidebar */}
579
  <RetroWindow title="Corpus" className="w-56 shrink-0" scrollable>
580
  <div className="flex flex-col">
581
  <button
582
+ type="button"
583
  onClick={() => { setShowCreate(true); setSelectedCorpusId(null) }}
584
  className={`
585
  w-full text-left px-2 py-[4px] text-retro-sm font-bold
 
594
  )}
595
  {corpora.map((c) => (
596
  <button
597
+ type="button"
598
  key={c.id}
599
  onClick={() => { setSelectedCorpusId(c.id); setShowCreate(false) }}
600
  className={`
frontend/src/pages/Editor.tsx CHANGED
@@ -176,7 +176,7 @@ export default function Editor({ pageId, onBack }: Props) {
176
  />
177
 
178
  {/* ── Main layout 50/50 ──────────────────────────────────────── */}
179
- <div className="flex flex-1 overflow-hidden p-1 gap-1">
180
 
181
  {/* ── Viewer window (left) ───────────────────────────────── */}
182
  <RetroWindow
 
176
  />
177
 
178
  {/* ── Main layout 50/50 ──────────────────────────────────────── */}
179
+ <div className="flex flex-1 min-h-0 overflow-hidden p-1 gap-1">
180
 
181
  {/* ── Viewer window (left) ───────────────────────────────── */}
182
  <RetroWindow
frontend/src/pages/Home.tsx CHANGED
@@ -1,5 +1,4 @@
1
  import { useEffect, useState } from 'react'
2
- import AdminNav from '../components/AdminNav.tsx'
3
  import SearchBar from '../components/SearchBar.tsx'
4
  import { RetroMenuBar, RetroWindow, RetroIcon } from '../components/retro'
5
  import {
@@ -94,15 +93,10 @@ export default function Home({ onOpenManuscript, onOpenPage, onAdmin }: Props) {
94
  <RetroMenuBar
95
  items={[
96
  { label: 'IIIF Studio' },
97
- { label: 'Fichier' },
98
- { label: 'Corpus' },
99
- { label: 'Aide' },
100
  ]}
101
  right={
102
- <div className="flex items-center gap-1">
103
- <SearchBar onSelectResult={onOpenPage ? (r) => onOpenPage(r.page_id) : undefined} />
104
- <AdminNav onClick={onAdmin} />
105
- </div>
106
  }
107
  />
108
 
@@ -126,6 +120,7 @@ export default function Home({ onOpenManuscript, onOpenPage, onAdmin }: Props) {
126
  {corpora.map((corpus) => (
127
  <div key={corpus.id}>
128
  <button
 
129
  onClick={() => void handleCorpusClick(corpus)}
130
  className={`
131
  w-full text-left px-3 py-[6px] flex items-center gap-3
@@ -172,6 +167,7 @@ export default function Home({ onOpenManuscript, onOpenPage, onAdmin }: Props) {
172
  <div className="divide-y divide-retro-gray">
173
  {selectedMs.map((ms) => (
174
  <button
 
175
  key={ms.id}
176
  onClick={() => onOpenManuscript(ms.id, selectedCorpus.profile_id)}
177
  className="
 
1
  import { useEffect, useState } from 'react'
 
2
  import SearchBar from '../components/SearchBar.tsx'
3
  import { RetroMenuBar, RetroWindow, RetroIcon } from '../components/retro'
4
  import {
 
93
  <RetroMenuBar
94
  items={[
95
  { label: 'IIIF Studio' },
96
+ { label: 'Administration', onClick: onAdmin },
 
 
97
  ]}
98
  right={
99
+ <SearchBar onSelectResult={onOpenPage ? (r) => onOpenPage(r.page_id) : undefined} />
 
 
 
100
  }
101
  />
102
 
 
120
  {corpora.map((corpus) => (
121
  <div key={corpus.id}>
122
  <button
123
+ type="button"
124
  onClick={() => void handleCorpusClick(corpus)}
125
  className={`
126
  w-full text-left px-3 py-[6px] flex items-center gap-3
 
167
  <div className="divide-y divide-retro-gray">
168
  {selectedMs.map((ms) => (
169
  <button
170
+ type="button"
171
  key={ms.id}
172
  onClick={() => onOpenManuscript(ms.id, selectedCorpus.profile_id)}
173
  className="
frontend/src/pages/Reader.tsx CHANGED
@@ -144,7 +144,7 @@ export default function Reader({ manuscriptId, profileId, onBack, onEdit }: Prop
144
  />
145
 
146
  {/* ── Main content ───────────────────────────────────────────── */}
147
- <div className="flex flex-1 overflow-hidden p-1 gap-1">
148
 
149
  {/* ── Viewer window (left, 70%) ──────────────────────────── */}
150
  <RetroWindow
@@ -179,6 +179,7 @@ export default function Reader({ manuscriptId, profileId, onBack, onEdit }: Prop
179
  {selectedRegion.type.replace(/_/g, ' ')}
180
  </span>
181
  <button
 
182
  onClick={() => setSelectedRegion(null)}
183
  className="text-retro-black font-bold hover:bg-retro-black hover:text-retro-white px-1"
184
  >
 
144
  />
145
 
146
  {/* ── Main content ───────────────────────────────────────────── */}
147
+ <div className="flex flex-1 min-h-0 overflow-hidden p-1 gap-1">
148
 
149
  {/* ── Viewer window (left, 70%) ──────────────────────────── */}
150
  <RetroWindow
 
179
  {selectedRegion.type.replace(/_/g, ' ')}
180
  </span>
181
  <button
182
+ type="button"
183
  onClick={() => setSelectedRegion(null)}
184
  className="text-retro-black font-bold hover:bg-retro-black hover:text-retro-white px-1"
185
  >