11'use client'
22
33import { useState } from 'react'
4- import { Button , ChipInput , cn , Label , Loader , toast } from '@sim/emcn'
5- import { ImageUp as ImageIcon , X } from '@sim/emcn/icons'
4+ import { Button , ChipInput , cn , Label , toast , UploadPreviewButton } from '@sim/emcn'
5+ import { X } from '@sim/emcn/icons'
66import { createLogger } from '@sim/logger'
77import { getErrorMessage , toError } from '@sim/utils/errors'
88import Image from 'next/image'
@@ -288,17 +288,13 @@ function WhitelabelingForm({ initialSettings, orgId, uploadWorkspaceId }: Whitel
288288 >
289289 < div className = 'flex items-center gap-4' >
290290 < DropZone onDrop = { logoUpload . handleFileDrop } >
291- < button
292- type = 'button'
291+ < UploadPreviewButton
293292 onClick = { logoUpload . handleThumbnailClick }
294- disabled = { logoUpload . isUploading }
293+ loading = { logoUpload . isUploading }
295294 aria-label = { logoUpload . previewUrl ? 'Change logo' : 'Upload logo' }
296295 title = { logoUpload . previewUrl ? 'Change logo' : 'Upload logo' }
297- className = 'group relative flex size-16 shrink-0 items-center justify-center overflow-hidden rounded-xl border border-[var(--border-1)] bg-[var(--surface-2)] transition-colors hover:bg-[var(--surface-3)] disabled:opacity-50'
298296 >
299- { logoUpload . isUploading ? (
300- < Loader className = 'size-5 text-[var(--text-muted)]' animate />
301- ) : logoUpload . previewUrl ? (
297+ { logoUpload . previewUrl ? (
302298 < Image
303299 src = { logoUpload . previewUrl }
304300 alt = 'Logo'
@@ -307,10 +303,8 @@ function WhitelabelingForm({ initialSettings, orgId, uploadWorkspaceId }: Whitel
307303 className = 'object-contain p-1'
308304 unoptimized
309305 />
310- ) : (
311- < ImageIcon className = 'size-5 text-[var(--text-muted)]' />
312- ) }
313- </ button >
306+ ) : null }
307+ </ UploadPreviewButton >
314308 </ DropZone >
315309 { logoUpload . previewUrl && (
316310 < Button
@@ -339,17 +333,14 @@ function WhitelabelingForm({ initialSettings, orgId, uploadWorkspaceId }: Whitel
339333 >
340334 < div className = 'flex items-center gap-4' >
341335 < DropZone onDrop = { wordmarkUpload . handleFileDrop } className = 'min-w-0 flex-1' >
342- < button
343- type = 'button'
336+ < UploadPreviewButton
344337 onClick = { wordmarkUpload . handleThumbnailClick }
345- disabled = { wordmarkUpload . isUploading }
338+ loading = { wordmarkUpload . isUploading }
346339 aria-label = { wordmarkUpload . previewUrl ? 'Change wordmark' : 'Upload wordmark' }
347340 title = { wordmarkUpload . previewUrl ? 'Change wordmark' : 'Upload wordmark' }
348- className = 'group relative flex h-16 w-full items-center justify-center overflow-hidden rounded-xl border border-[var(--border-1)] bg-[var(--surface-2)] transition-colors hover:bg-[var(--surface-3)] disabled:opacity-50 '
341+ className = 'w-full'
349342 >
350- { wordmarkUpload . isUploading ? (
351- < Loader className = 'size-5 text-[var(--text-muted)]' animate />
352- ) : wordmarkUpload . previewUrl ? (
343+ { wordmarkUpload . previewUrl ? (
353344 < Image
354345 src = { wordmarkUpload . previewUrl }
355346 alt = 'Wordmark'
@@ -358,10 +349,8 @@ function WhitelabelingForm({ initialSettings, orgId, uploadWorkspaceId }: Whitel
358349 className = 'object-contain p-2'
359350 unoptimized
360351 />
361- ) : (
362- < ImageIcon className = 'size-5 text-[var(--text-muted)]' />
363- ) }
364- </ button >
352+ ) : null }
353+ </ UploadPreviewButton >
365354 </ DropZone >
366355 { wordmarkUpload . previewUrl && (
367356 < Button
0 commit comments