diff --git a/src/components/OrbitQueueHead.tsx b/src/components/OrbitQueueHead.tsx index 527f24aa..da8f6a85 100644 --- a/src/components/OrbitQueueHead.tsx +++ b/src/components/OrbitQueueHead.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from 'react'; -import { Users, WifiOff } from 'lucide-react'; +import { Users, Wifi, WifiOff } from 'lucide-react'; import { useTranslation } from 'react-i18next'; import { useOrbitStore } from '../store/orbitStore'; import type { OrbitState } from '../api/orbit'; @@ -34,18 +34,20 @@ export default function OrbitQueueHead({ state }: Props) { }, [role]); const names = [state.host, ...state.participants.map(p => p.user)]; - const hostAway = role === 'guest' - && state.positionAt > 0 - && (nowMs - state.positionAt) > HOST_AWAY_THRESHOLD_MS; + const showPresence = role === 'guest' && state.positionAt > 0; + const hostAway = showPresence && (nowMs - state.positionAt) > HOST_AWAY_THRESHOLD_MS; return (

{state.name}

- {hostAway && ( - - - {t('orbit.hostAway')} + {showPresence && ( + + {hostAway ? : } + {t(hostAway ? 'orbit.hostAway' : 'orbit.hostOnline')} )}
diff --git a/src/locales/de.ts b/src/locales/de.ts index 6dd86142..a08dd7e3 100644 --- a/src/locales/de.ts +++ b/src/locales/de.ts @@ -1485,6 +1485,7 @@ export const deTranslation = { catchUpLabel: 'aufholen', catchUpTooltip: 'Zur aktuellen Host-Position springen', hostAway: 'Host offline', + hostOnline: 'Host online', endTooltip: 'Session beenden', leaveTooltip: 'Session verlassen', participantsInviteLabel: 'Einladungslink', diff --git a/src/locales/en.ts b/src/locales/en.ts index f829e721..6a8b5de4 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -1488,6 +1488,7 @@ export const enTranslation = { catchUpLabel: 'catch up', catchUpTooltip: "Jump to the host's current position", hostAway: 'Host offline', + hostOnline: 'Host online', endTooltip: 'End session', leaveTooltip: 'Leave session', participantsInviteLabel: 'Invite link', diff --git a/src/styles/components.css b/src/styles/components.css index abae11ea..90ade391 100644 --- a/src/styles/components.css +++ b/src/styles/components.css @@ -12299,12 +12299,24 @@ html[data-psy-native-hidden="true"] *::after { font-size: 10.5px; font-weight: 600; letter-spacing: 0.02em; + border-radius: 999px; + border-width: 1px; + border-style: solid; +} +.orbit-queue-head__presence--online { + color: var(--ctp-green, #a6e3a1); + background: color-mix(in srgb, var(--ctp-green, #a6e3a1) 14%, transparent); + border-color: color-mix(in srgb, var(--ctp-green, #a6e3a1) 40%, transparent); +} +.orbit-queue-head__presence--online svg { + color: var(--ctp-green, #a6e3a1); +} +.orbit-queue-head__presence--away { color: var(--ctp-yellow, #f9e2af); background: color-mix(in srgb, var(--ctp-yellow, #f9e2af) 14%, transparent); - border: 1px solid color-mix(in srgb, var(--ctp-yellow, #f9e2af) 40%, transparent); - border-radius: 999px; + border-color: color-mix(in srgb, var(--ctp-yellow, #f9e2af) 40%, transparent); } -.orbit-queue-head__presence svg { +.orbit-queue-head__presence--away svg { color: var(--ctp-yellow, #f9e2af); } .orbit-queue-head__meta {