-
Notifications
You must be signed in to change notification settings - Fork 78
Expand file tree
/
Copy pathInformationBar.tsx
More file actions
48 lines (41 loc) · 1.27 KB
/
Copy pathInformationBar.tsx
File metadata and controls
48 lines (41 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import {
useGeneralSettings,
useDrivingState,
useSessionVisibility,
} from '@irdashies/context';
import { SessionBar } from '../Standings/components/SessionBar/SessionBar';
import { useInformationBarSettings } from '../Standings/hooks/useInformationBarSettings';
export const InformationBar = () => {
const settings = useInformationBarSettings();
const generalSettings = useGeneralSettings();
const { isDriving } = useDrivingState();
const isSessionVisible = useSessionVisibility(settings?.sessionVisibility);
if (!settings?.enabled) {
return null;
}
if (!isSessionVisible) {
return null;
}
// Show only when on track setting
if (settings?.showOnlyWhenOnTrack && !isDriving) {
return null;
}
const isCompact =
generalSettings?.compactMode === 'compact' ||
generalSettings?.compactMode === 'ultra';
return (
<div
className={`w-full bg-slate-800/(--bg-opacity) rounded-sm ${!isCompact ? 'p-2' : ''} overflow-hidden pointer-events-none`}
style={{
['--bg-opacity' as string]: `${settings?.background?.opacity ?? 60}%`,
}}
>
<SessionBar
settings={settings}
opacity={settings?.foreground?.opacity}
standalone
/>
</div>
);
};
InformationBar.displayName = 'InformationBar';