Skip to content

Commit dd40067

Browse files
committed
fix: some minor fixes
1 parent 1631368 commit dd40067

File tree

8 files changed

+157
-157
lines changed

8 files changed

+157
-157
lines changed

ui/src/components/Sidebar.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,13 @@ const Sidebar: React.FC<SidebarProps> = ({ isOpen, onClose }) => {
9494
{!collapsed && (
9595
<div className="flex items-center gap-3">
9696
<div className="flex flex-col items-center">
97-
<Wifi className={`h-4 w-4 ${connectionState === 'connected' ? 'text-green-500' : 'text-red-500'}`} />
97+
<Wifi className={`h-4 w-4 ${connectionState === 'connected' ? 'text-green-500' : 'text-red-500'}`} />
9898
<span className={`text-[10px] font-medium capitalize mt-1 ${
99-
connectionState === 'connected' ? 'text-green-500' :
100-
connectionState === 'connecting' ? 'text-yellow-500' : 'text-red-500'
101-
}`}>
102-
{connectionState}
103-
</span>
99+
connectionState === 'connected' ? 'text-green-500' :
100+
connectionState === 'connecting' ? 'text-yellow-500' : 'text-red-500'
101+
}`}>
102+
{connectionState}
103+
</span>
104104
</div>
105105
<span className="text-xs font-semibold text-accent-orange ml-2">v{version}</span>
106106
</div>

ui/src/components/WidgetGrid.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const WidgetGrid: React.FC<WidgetGridProps> = ({
3535
widgets,
3636
onLayoutChange,
3737
onRemoveWidget,
38-
onAddWidgetClick
38+
onAddWidgetClick
3939
}) => {
4040
const [moveMode, setMoveMode] = useState<string | null>(null);
4141

@@ -143,7 +143,7 @@ const WidgetGrid: React.FC<WidgetGridProps> = ({
143143
: 'border-border bg-card'
144144
}`}
145145
>
146-
{onRemoveWidget && widget.id !== 'add-widget' && (
146+
{onRemoveWidget && widget.id !== 'add-widget' && (
147147
<div className="absolute top-2 right-2 z-10">
148148
<button
149149
ref={buttonRef}
@@ -178,25 +178,25 @@ const WidgetGrid: React.FC<WidgetGridProps> = ({
178178
<Move className="h-4 w-4" />
179179
{moveMode === widget.id ? 'Exit Move' : 'Move'}
180180
</button>
181-
<button
181+
<button
182182
onClick={() => {
183183
onRemoveWidget(widget.id);
184184
setShowTooltip(false);
185185
}}
186186
className="flex items-center gap-2 px-3 py-2 text-sm text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20 rounded-md transition-colors"
187-
>
188-
<Trash className="h-4 w-4" />
187+
>
188+
<Trash className="h-4 w-4" />
189189
Delete
190-
</button>
190+
</button>
191191
</div>
192192
</div>
193193
)}
194194
</div>
195-
)}
196-
<div className="h-full overflow-hidden">
197-
{widget.content}
198-
</div>
195+
)}
196+
<div className="h-full overflow-hidden">
197+
{widget.content}
199198
</div>
199+
</div>
200200
);
201201
})}
202202
</ResponsiveGridLayout>

ui/src/components/add-sidebar-button.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,14 @@ const AddSidebarButton = <T extends { id: string | number }>({
123123
</SelectContent>
124124
</Select>
125125
) : (
126-
<input
127-
type={col.type || 'text'}
128-
className={`w-full px-3 py-2 border rounded bg-background ${errors[col.key as string] ? 'border-red-500' : 'border'} focus:outline-none`}
129-
value={form[col.key] as string || ''}
130-
onChange={e => handleChange(col.key, e.target.value)}
131-
placeholder={`Enter ${col.label}`}
132-
required={col.required}
133-
/>
126+
<input
127+
type={col.type || 'text'}
128+
className={`w-full px-3 py-2 border rounded bg-background ${errors[col.key as string] ? 'border-red-500' : 'border'} focus:outline-none`}
129+
value={form[col.key] as string || ''}
130+
onChange={e => handleChange(col.key, e.target.value)}
131+
placeholder={`Enter ${col.label}`}
132+
required={col.required}
133+
/>
134134
)}
135135
{errors[col.key as string] && (
136136
<p className="text-xs text-red-600 mt-1">{errors[col.key as string]}</p>

ui/src/components/generic-card-view.tsx

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ function GenericCardView<T extends { id: string | number }>({
4040

4141
return (
4242
<>
43-
<div className={`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 ${className || ''}`}>
44-
{data.map((item) => (
45-
<div
46-
key={item.id}
43+
<div className={`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 ${className || ''}`}>
44+
{data.map((item) => (
45+
<div
46+
key={item.id}
4747
className="bg-card border border-border rounded-lg p-4 hover:shadow-md transition-shadow flex items-start gap-4 relative"
4848
>
4949
{/* Top right action buttons */}
@@ -69,24 +69,24 @@ function GenericCardView<T extends { id: string | number }>({
6969
)}
7070
</div>
7171
)}
72-
<div className="flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-lg bg-accent-orange/10 mt-1">
73-
<User className="h-7 w-7 text-accent-orange" />
74-
</div>
75-
<div className="flex-1 space-y-3">
76-
{columns.map((col) => (
72+
<div className="flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-lg bg-accent-orange/10 mt-1">
73+
<User className="h-7 w-7 text-accent-orange" />
74+
</div>
75+
<div className="flex-1 space-y-3">
76+
{columns.map((col) => (
7777
<div key={String(col.key)} className="flex flex-col items-start">
78-
<span className="text-sm font-medium text-accent-orange capitalize min-w-[90px] text-left">
79-
{col.label}:
80-
</span>
78+
<span className="text-sm font-medium text-accent-orange capitalize min-w-[90px] text-left">
79+
{col.label}:
80+
</span>
8181
<span className="text-sm ml-0 flex-1 text-white text-left">
82-
{renderValue(item, col)}
83-
</span>
84-
</div>
85-
))}
86-
</div>
82+
{renderValue(item, col)}
83+
</span>
84+
</div>
85+
))}
8786
</div>
88-
))}
89-
</div>
87+
</div>
88+
))}
89+
</div>
9090
{/* Single Delete confirmation modal rendered outside the card map */}
9191
{onDelete && deleteModalItem && (
9292
<Dialog open={!!deleteModalItem} onOpenChange={open => !open && setDeleteModalItem(null)}>

ui/src/pages/Display.tsx

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,41 +30,41 @@ const Display: React.FC = () => {
3030
const [editForm, setEditForm] = useState<Partial<Display>>({});
3131
const [editErrors, setEditErrors] = useState<Record<string, string>>({});
3232

33-
const columns: TableColumn<Display>[] = [
34-
{
35-
key: 'id',
36-
label: 'ID',
37-
filterable: true,
38-
editable: false,
39-
required: false,
40-
type: 'text',
41-
render: (id: string) => (
33+
const columns: TableColumn<Display>[] = [
34+
{
35+
key: 'id',
36+
label: 'ID',
37+
filterable: true,
38+
editable: false,
39+
required: false,
40+
type: 'text',
41+
render: (id: string) => (
4242
<span className="flex items-center gap-2 relative">
43-
<span>{id}</span>
44-
<button
43+
<span>{id}</span>
44+
<button
4545
className="p-1 rounded hover:bg-muted relative"
46-
onClick={e => {
47-
e.stopPropagation();
48-
navigator.clipboard.writeText(id);
46+
onClick={e => {
47+
e.stopPropagation();
48+
navigator.clipboard.writeText(id);
4949
setCopiedId(id);
5050
setTimeout(() => setCopiedId(current => (current === id ? null : current)), 2000);
51-
}}
52-
title="Copy ID"
53-
>
54-
<Copy className="h-4 w-4" />
51+
}}
52+
title="Copy ID"
53+
>
54+
<Copy className="h-4 w-4" />
5555
{copiedId === id && (
5656
<span className="absolute left-1/2 -translate-x-1/2 top-8 bg-black text-white text-xs rounded px-2 py-1 shadow z-10 animate-fade-in">
5757
Copied!
5858
</span>
5959
)}
60-
</button>
61-
</span>
62-
),
63-
},
64-
{ key: 'name', label: 'Name', filterable: true, required: true, type: 'text' },
65-
{ key: 'status', label: 'Status', filterable: true, required: true, type: 'text' },
66-
{ key: 'location', label: 'Location', filterable: true, required: true, type: 'text' },
67-
];
60+
</button>
61+
</span>
62+
),
63+
},
64+
{ key: 'name', label: 'Name', filterable: true, required: true, type: 'text' },
65+
{ key: 'status', label: 'Status', filterable: true, required: true, type: 'text' },
66+
{ key: 'location', label: 'Location', filterable: true, required: true, type: 'text' },
67+
];
6868

6969
const validateField = (col: any, value: any) => {
7070
if (col.required && (!value || value === '')) {

ui/src/pages/RfidTags.tsx

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -161,29 +161,29 @@ const RfidTags: React.FC = () => {
161161
</header>
162162
<main className="flex-1 p-6 min-w-0">
163163
<div className="flex justify-end items-center gap-4 mb-4">
164-
<ViewToggle view={view} onViewChange={setView} />
165-
<AddSidebarButton<Tag>
166-
buttonTitle="Add RFID Tag"
167-
sidebarTitle="Add New RFID Tag"
168-
columns={columns}
169-
onAdd={tag => setTags([...tags, tag])}
170-
/>
171-
</div>
172-
{view === 'list' ? (
173-
<GenericTable<Tag>
174-
columns={columns}
175-
data={tags}
176-
filterInputClassName="w-1/4"
177-
className="min-w-full text-sm"
178-
columnVisibilityEnabled={true}
179-
columnSearchEnabled={true}
164+
<ViewToggle view={view} onViewChange={setView} />
165+
<AddSidebarButton<Tag>
166+
buttonTitle="Add RFID Tag"
167+
sidebarTitle="Add New RFID Tag"
168+
columns={columns}
169+
onAdd={tag => setTags([...tags, tag])}
170+
/>
171+
</div>
172+
{view === 'list' ? (
173+
<GenericTable<Tag>
174+
columns={columns}
175+
data={tags}
176+
filterInputClassName="w-1/4"
177+
className="min-w-full text-sm"
178+
columnVisibilityEnabled={true}
179+
columnSearchEnabled={true}
180180
onRowClick={handleRowClick}
181-
/>
182-
) : (
183-
<GenericCardView<Tag>
184-
data={tags}
185-
columns={columns}
186-
className="min-w-full"
181+
/>
182+
) : (
183+
<GenericCardView<Tag>
184+
data={tags}
185+
columns={columns}
186+
className="min-w-full"
187187
onEdit={handleRowClick}
188188
onDelete={tag => setTags(tags => tags.filter(t => t.id !== tag.id))}
189189
/>
@@ -233,8 +233,8 @@ const RfidTags: React.FC = () => {
233233
)}
234234
{editErrors[col.key as string] && (
235235
<p className="text-xs text-red-600 mt-1">{editErrors[col.key as string]}</p>
236-
)}
237-
</div>
236+
)}
237+
</div>
238238
))}
239239
</form>
240240
</SettingsSidebar>

ui/src/pages/Settings.tsx

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -375,9 +375,9 @@ function Settings() {
375375
<div className="space-y-2">
376376
<Label htmlFor="firmwareVersion">Firmware Version</Label>
377377
<div className="relative group">
378-
<Input
379-
id="firmwareVersion"
380-
value={infoSettings.firmwareVersion}
378+
<Input
379+
id="firmwareVersion"
380+
value={infoSettings.firmwareVersion}
381381
readOnly
382382
className="bg-muted cursor-not-allowed opacity-80 pr-10"
383383
tabIndex={-1}
@@ -526,26 +526,26 @@ function Settings() {
526526
{connectivityLoading ? 'Saving...' : 'Save'}
527527
</Button>
528528
</div>
529-
{testConnectionResult && (
530-
<div className={`mt-3 p-3 rounded-lg border ${
531-
testConnectionResult === 'success'
532-
? 'bg-green-50 border-green-200 text-green-800 dark:bg-green-900/20 dark:border-green-800 dark:text-green-200'
533-
: 'bg-red-50 border-red-200 text-red-800 dark:bg-red-900/20 dark:border-red-800 dark:text-red-200'
534-
}`}>
535-
<div className="flex items-center gap-2">
536-
{testConnectionResult === 'success' ? (
537-
<div className="w-2 h-2 bg-green-500 rounded-full" />
538-
) : (
539-
<AlertTriangle className="h-4 w-4" />
540-
)}
541-
<span className="text-sm font-medium">
542-
{testConnectionResult === 'success'
543-
? 'Connection test successful!'
544-
: 'Connection test failed. Please check your settings.'}
545-
</span>
546-
</div>
547-
</div>
548-
)}
529+
{testConnectionResult && (
530+
<div className={`mt-3 p-3 rounded-lg border ${
531+
testConnectionResult === 'success'
532+
? 'bg-green-50 border-green-200 text-green-800 dark:bg-green-900/20 dark:border-green-800 dark:text-green-200'
533+
: 'bg-red-50 border-red-200 text-red-800 dark:bg-red-900/20 dark:border-red-800 dark:text-red-200'
534+
}`}>
535+
<div className="flex items-center gap-2">
536+
{testConnectionResult === 'success' ? (
537+
<div className="w-2 h-2 bg-green-500 rounded-full" />
538+
) : (
539+
<AlertTriangle className="h-4 w-4" />
540+
)}
541+
<span className="text-sm font-medium">
542+
{testConnectionResult === 'success'
543+
? 'Connection test successful!'
544+
: 'Connection test failed. Please check your settings.'}
545+
</span>
546+
</div>
547+
</div>
548+
)}
549549

550550
</CardContent>
551551
</Card>
@@ -802,16 +802,16 @@ function Settings() {
802802
);
803803
} else if (w.id === 'add-widget') {
804804
content = (
805-
<button
806-
className="w-full h-full flex flex-col items-center justify-center border-2 border-dashed border-accent-orange rounded-lg bg-card hover:bg-accent-orange/10 transition-colors focus:outline-none focus:ring-2 focus:ring-accent-orange opacity-60 pointer-events-auto"
807-
onClick={() => setAddDialogOpen(true)}
808-
type="button"
809-
tabIndex={0}
810-
aria-label="Add widget"
811-
>
812-
<Plus className="h-8 w-8 text-accent-orange mb-1" />
813-
<span className="text-accent-orange font-medium">Add Widget</span>
814-
</button>
805+
<button
806+
className="w-full h-full flex flex-col items-center justify-center border-2 border-dashed border-accent-orange rounded-lg bg-card hover:bg-accent-orange/10 transition-colors focus:outline-none focus:ring-2 focus:ring-accent-orange opacity-60 pointer-events-auto"
807+
onClick={() => setAddDialogOpen(true)}
808+
type="button"
809+
tabIndex={0}
810+
aria-label="Add widget"
811+
>
812+
<Plus className="h-8 w-8 text-accent-orange mb-1" />
813+
<span className="text-accent-orange font-medium">Add Widget</span>
814+
</button>
815815
);
816816
}
817817
return { ...w, content };

0 commit comments

Comments
 (0)