// Housekeeping mobile — telefonska aplikacija za sobarice in vzdrževalce // Ena stran z dnevnim seznamom + detajl sobe + akcije function HKApp({ dark }) { const [tab, setTab] = React.useState('list'); const [task, setTask] = React.useState(null); return
{/* Header */}
28. april · sreda
Anita K.
AK
{tab==='list' && !task && } {tab==='list' && task && setTask(null)}/>} {tab==='reports' && } {tab==='profile' && } {/* Tab bar */}
{[ ['list', 'cleaning', 'Naloge'], ['reports', 'wrench', 'Napake'], ['profile', 'users', 'Profil'], ].map(([k,ic,l])=>{ const a = tab===k; return ; })}
; } function HKList({ dark, onPick }){ const muted = dark?'#9A9A9A':'#707070'; const stIcon = {pending:'dot', in_progress:'sparkle', done:'check'}; const stColor = {pending:'#9A9A9A', in_progress:'#FF9800', done:'#2DD164'}; const stLbl = {pending:'Čaka', in_progress:'V teku', done:'Končano'}; const taskLbl = {departure:'Po odhodu', arrival:'Pred prihodom', stayover:'Bivanje', maintenance:'Vzdrževanje', inspection:'Pregled'}; const priColor = {urgent:'#E53935', high:'#FF9800', med:'#2196F3', low:'#9A9A9A'}; const my = HK_TASKS.filter(t=>t.assigned==='Anita K.'); const done = my.filter(t=>t.status==='done').length; return
Danes
{done}
/ {my.length}
Čaka
{my.filter(t=>t.status==='pending').length}
{/* Progress bar */}
{my.map(t=>( ))}
; } function HKDetail({ dark, task, onBack }){ const muted = dark?'#9A9A9A':'#707070'; const taskLbl = {departure:'Po odhodu', arrival:'Pred prihodom', stayover:'Bivanje', maintenance:'Vzdrževanje', inspection:'Pregled'}; const checklist = [ ['Pospraviti posteljo','done'], ['Sesati', task.status==='done'?'done':'pending'], ['Brisati prah',task.status==='done'?'done':'pending'], ['Očistiti kopalnico',task.status==='done'?'done':'pending'], ['Zamenjati brisače','pending'], ['Dopolniti minibar','pending'], ['Preveriti tehniko','pending'], ]; return
Soba
{task.room} · {taskLbl[task.task]}
{task.notes &&
⚑ {task.notes}
}
Tip · {task.type}
Predvideno · {task.est}
Do · {task.due}
Prioriteta · {task.priority}
Kontrolni seznam
{checklist.map(([l,s],i)=>(
0?`1px solid ${dark?'#2B2B2B':'#F5F5F5'}`:'none'}}>
{s==='done' && }
{l}
))}
; } function HKReports({ dark }){ const muted = dark?'#9A9A9A':'#707070'; return
Aktivne napake
{[ ['418','TV ne dela','urgent','V obdelavi · Tomaž V.','#E53935'], ['207','Pipa kaplja','med','Čaka · pred 2 dni','#FF9800'], ['305','Šibka WiFi povezava','low','Čaka · pred 3 dni','#9A9A9A'], ].map(([r,t,p,d,c])=>
{r} · {t}
{p}
{d}
)}
; } function HKProfile({ dark }){ const muted = dark?'#9A9A9A':'#707070'; return
AK
Anita Koren
Housekeeping · Hotel Triglav Bled
{[['142','sob ta mes.'],['98%','ocena'],['07–15','smena']].map(([v,l])=>
{v}
{l}
)}
{['Predaja smene','Moj urnik','Plačilna lista','Dopust','Odjava'].map((l,i)=> )}
; } Object.assign(window, { HKApp });