The assistant is Loya, and she lives in the top-right corner
A name, a voice and a door. The prompt now asks for a colleague on the shop floor - answer first, one to three sentences, the shop's name and the person's name, the one thing to do next - instead of a report with headings. Both apps put her behind the Loyaly mark in the top-right corner of every screen, because a buddy you have to find in a sidebar is not around. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KGcjxF1cNLcuwc3DAPcnfj
This commit is contained in:
@@ -79,8 +79,8 @@ export default function App() {
|
||||
|
||||
<div className="who">
|
||||
<button className={'ask-btn' + (asking ? ' on' : '')}
|
||||
onClick={() => setAsking(a => !a)}>
|
||||
<span aria-hidden="true">✳</span> Ask
|
||||
onClick={() => setAsking(a => !a)} title="Ask Loya">
|
||||
<span className="mark" aria-hidden="true" /> Loya
|
||||
</button>
|
||||
<span className="name">{user.full_name || user.email}</span>
|
||||
<span className="role">{isAdmin ? 'platform admin' : user.role}</span>
|
||||
|
||||
@@ -458,7 +458,7 @@ button.ghost.danger:hover { border-color: var(--bad); }
|
||||
/* ---------------------------------------------------------- assistant --- */
|
||||
.with-assistant { display: flex; flex: 1; min-height: 0; }
|
||||
.with-assistant .page { flex: 1; min-width: 0; }
|
||||
.ask-btn { background: var(--accent-dim); color: var(--accent); border: 0;
|
||||
.ask-btn { display: inline-flex; align-items: center; gap: 7px; background: var(--accent-dim); color: var(--accent); border: 0;
|
||||
border-radius: 7px; padding: 7px 13px; cursor: pointer;
|
||||
font-size: 13.5px; font-weight: 550; display: flex; align-items: center; gap: 7px; }
|
||||
.ask-btn:hover, .ask-btn.on { background: var(--accent); color: #04161B; }
|
||||
@@ -566,3 +566,5 @@ button.ghost.danger:hover { border-color: var(--bad); }
|
||||
/* The code is read off a screen or a phone call, so it is set wide. */
|
||||
.codefield { font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
||||
letter-spacing: .04em; text-transform: uppercase; }
|
||||
|
||||
.ask-btn .mark { width: 18px; height: 18px; }
|
||||
|
||||
@@ -59,8 +59,8 @@ export default function Assistant({ open, onClose }) {
|
||||
<aside className="assistant" role="complementary" aria-label="Assistant">
|
||||
<header className="assistant-head">
|
||||
<div>
|
||||
<b>Ask Behavision</b>
|
||||
<span className="sub">It reads your shops’ own data to answer.</span>
|
||||
<b>Loya</b>
|
||||
<span className="sub">Your Behavision buddy — knows your shops, cameras and numbers.</span>
|
||||
</div>
|
||||
<button className="ghost" onClick={onClose} aria-label="Close assistant">✕</button>
|
||||
</header>
|
||||
@@ -68,7 +68,7 @@ export default function Assistant({ open, onClose }) {
|
||||
<div className="assistant-body">
|
||||
{off ? (
|
||||
<p className="sub pad">
|
||||
The assistant is not switched on for this server.
|
||||
Loya is not switched on for this server.
|
||||
</p>
|
||||
) : history.length === 0 ? (
|
||||
<div className="suggest">
|
||||
@@ -104,7 +104,7 @@ export default function Assistant({ open, onClose }) {
|
||||
ref={inputRef}
|
||||
value={draft}
|
||||
onChange={e => setDraft(e.target.value)}
|
||||
placeholder="Ask about your shops…"
|
||||
placeholder="Ask Loya…"
|
||||
disabled={busy}
|
||||
/>
|
||||
<button className="primary" disabled={busy || !draft.trim()}>Ask</button>
|
||||
|
||||
Reference in New Issue
Block a user