|
1 | 1 | import React, { useRef, useEffect, useState, useMemo } from 'react'; |
2 | | -import { ZoomIn, ZoomOut, Scissors, Hash, Clock, MousePointer2, Magnet, Repeat, PlayCircle, Hand, Library, Mic } from 'lucide-react'; |
| 2 | +import { ZoomIn, ZoomOut, Scissors, Hash, Clock, MousePointer2, Magnet, Repeat, PlayCircle, Hand, Library, Mic, Music } from 'lucide-react'; |
3 | 3 | import { usePadStore } from '../stores/padStore'; |
4 | 4 | import { useAudioStore } from '../stores/audioStore'; |
5 | 5 | import { useSequencerStore } from '../stores/sequencerStore'; |
6 | | -import { TriggerMode } from '../types'; |
| 6 | +import { TriggerMode, AppMode } from '../types'; |
7 | 7 | import { detectBPM, calculateLoopBPM } from '../utils/audioUtils'; |
8 | 8 |
|
9 | 9 | interface WaveformEditorProps { |
@@ -462,38 +462,38 @@ export const WaveformEditor: React.FC<WaveformEditorProps> = ({ isUltraSampleMod |
462 | 462 | if (!isUltraSampleMode && !activePad?.sampleId && !storedWaveform) { |
463 | 463 | return ( |
464 | 464 | <div id="waveform-empty-state" className="h-full w-full flex items-center justify-center p-2 bg-black/40"> |
465 | | - <div className="w-full h-full min-h-32 flex flex-col items-center justify-center gap-6 border-2 border-dashed border-white/5 rounded-2xl bg-zinc-900/10"> |
| 465 | + <div className="w-full h-full min-h-32 flex flex-col items-center justify-center gap-6 border-2 border-dashed border-white/5 rounded-2xl bg-zinc-900/10 p-4"> |
466 | 466 | <div className="flex flex-col items-center gap-2 opacity-40"> |
467 | | - <div className="w-12 h-12 rounded-full bg-zinc-800 flex items-center justify-center border border-white/5"> |
468 | | - <Scissors size={20} className="text-zinc-500" /> |
| 467 | + <div className="w-11 h-11 rounded-full bg-zinc-800 flex items-center justify-center border border-white/5"> |
| 468 | + <Music size={18} className="text-zinc-500" /> |
469 | 469 | </div> |
470 | 470 | <span className="text-zinc-500 text-[9px] font-black uppercase tracking-[0.2em]"> |
471 | 471 | Idle Buffer |
472 | 472 | </span> |
473 | 473 | </div> |
474 | 474 |
|
475 | | - <div className="flex flex-col sm:flex-row gap-3 w-full max-w-[320px] px-4"> |
| 475 | + <div className="flex flex-row gap-2.5 w-full max-w-[420px]"> |
476 | 476 | <button |
477 | 477 | id="empty-state-browse" |
478 | | - onClick={() => setAppMode('SAMPLE' as any)} |
479 | | - className="flex-1 bg-zinc-800/80 hover:bg-zinc-700 text-white rounded-xl py-3 px-4 flex items-center justify-center gap-2 border border-white/5 transition-all active:scale-95 group" |
| 478 | + onClick={() => setAppMode(AppMode.SAMPLE)} |
| 479 | + className="flex-1 bg-zinc-800/80 hover:bg-zinc-700 text-white rounded-xl py-3 px-3 flex items-center justify-center gap-2 border border-white/5 transition-all active:scale-95 group overflow-hidden" |
480 | 480 | > |
481 | | - <Library size={16} className="text-zinc-500 group-hover:text-retro-accent transition-colors" /> |
482 | | - <div className="flex flex-col items-start leading-none gap-1"> |
483 | | - <span className="text-[10px] font-black uppercase tracking-wider">Browse Library</span> |
484 | | - <span className="text-[7px] font-bold text-zinc-500 uppercase">1000+ Samples</span> |
| 481 | + <Library size={16} className="text-zinc-500 group-hover:text-retro-accent transition-colors flex-none" /> |
| 482 | + <div className="flex flex-col items-start leading-none gap-1 min-w-0"> |
| 483 | + <span className="text-[9px] xs:text-[10px] font-black uppercase tracking-wider truncate w-full text-left">Library</span> |
| 484 | + <span className="text-[7px] font-bold text-zinc-500 uppercase truncate w-full text-left">1000+ SAMPLES</span> |
485 | 485 | </div> |
486 | 486 | </button> |
487 | 487 |
|
488 | 488 | <button |
489 | 489 | id="empty-state-record" |
490 | 490 | onClick={() => setRecordingModalOpen(true)} |
491 | | - className="flex-1 bg-zinc-800/80 hover:bg-retro-accent/10 hover:border-retro-accent/30 text-white rounded-xl py-3 px-4 flex items-center justify-center gap-2 border border-white/5 transition-all active:scale-95 group" |
| 491 | + className="flex-1 bg-zinc-800/80 hover:bg-retro-accent/10 hover:border-retro-accent/30 text-white rounded-xl py-3 px-3 flex items-center justify-center gap-2 border border-white/5 transition-all active:scale-95 group overflow-hidden" |
492 | 492 | > |
493 | | - <Mic size={16} className="text-zinc-500 group-hover:text-retro-accent transition-colors" /> |
494 | | - <div className="flex flex-col items-start leading-none gap-1"> |
495 | | - <span className="text-[10px] font-black uppercase tracking-wider">Pro Record</span> |
496 | | - <span className="text-[7px] font-bold text-zinc-500 uppercase">Input Capture</span> |
| 493 | + <Mic size={16} className="text-zinc-500 group-hover:text-retro-accent transition-colors flex-none" /> |
| 494 | + <div className="flex flex-col items-start leading-none gap-1 min-w-0"> |
| 495 | + <span className="text-[9px] xs:text-[10px] font-black uppercase tracking-wider truncate w-full text-left">Record</span> |
| 496 | + <span className="text-[7px] font-bold text-zinc-500 uppercase truncate w-full text-left">INPUT CAPTURE</span> |
497 | 497 | </div> |
498 | 498 | </button> |
499 | 499 | </div> |
|
0 commit comments