Sync main (420 Brokkoli 20x random) into feature/nightly
This commit is contained in:
commit
dbc9003eba
1 changed files with 22 additions and 6 deletions
|
|
@ -47,6 +47,19 @@ export default function App() {
|
||||||
return `https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/svg/${codePoints}.svg`;
|
return `https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/svg/${codePoints}.svg`;
|
||||||
}
|
}
|
||||||
const [showBroccoli, setShowBroccoli] = useState<boolean>(false);
|
const [showBroccoli, setShowBroccoli] = useState<boolean>(false);
|
||||||
|
const broccoliItems = useMemo(() => {
|
||||||
|
if (!(theme === '420' && showBroccoli)) return [] as Array<{top:number; left:number; duration:number; delay:number}>;
|
||||||
|
const items: Array<{top:number; left:number; duration:number; delay:number}> = [];
|
||||||
|
for (let i = 0; i < 20; i += 1) {
|
||||||
|
items.push({
|
||||||
|
top: 5 + Math.random() * 90, // 5%..95%
|
||||||
|
left: 2 + Math.random() * 96, // 2%..98%
|
||||||
|
duration: 14 + Math.random() * 14, // 14s..28s
|
||||||
|
delay: Math.random() * 2 // 0..2s
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return items;
|
||||||
|
}, [theme, showBroccoli]);
|
||||||
const [partyActiveGuilds, setPartyActiveGuilds] = useState<string[]>([]);
|
const [partyActiveGuilds, setPartyActiveGuilds] = useState<string[]>([]);
|
||||||
const selectedCount = useMemo(() => Object.values(selectedSet).filter(Boolean).length, [selectedSet]);
|
const selectedCount = useMemo(() => Object.values(selectedSet).filter(Boolean).length, [selectedSet]);
|
||||||
const [clock, setClock] = useState<string>(() => new Intl.DateTimeFormat('de-DE', { hour: '2-digit', minute: '2-digit', hour12: false, timeZone: 'Europe/Berlin' }).format(new Date()));
|
const [clock, setClock] = useState<string>(() => new Intl.DateTimeFormat('de-DE', { hour: '2-digit', minute: '2-digit', hour12: false, timeZone: 'Europe/Berlin' }).format(new Date()));
|
||||||
|
|
@ -334,12 +347,15 @@ export default function App() {
|
||||||
{/* Floating Broccoli for 420 Theme */}
|
{/* Floating Broccoli for 420 Theme */}
|
||||||
{theme === '420' && showBroccoli && (
|
{theme === '420' && showBroccoli && (
|
||||||
<>
|
<>
|
||||||
<div className="broccoli">🥦</div>
|
{broccoliItems.map((b, idx) => (
|
||||||
<div className="broccoli">🥦</div>
|
<div
|
||||||
<div className="broccoli">🥦</div>
|
key={idx}
|
||||||
<div className="broccoli">🥦</div>
|
className="broccoli"
|
||||||
<div className="broccoli">🥦</div>
|
style={{ top: `${b.top}%`, left: `${b.left}%`, animationDuration: `${b.duration}s`, animationDelay: `${b.delay}s` }}
|
||||||
<div className="broccoli">🥦</div>
|
>
|
||||||
|
🥦
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
<header className="flex items-center justify-between p-6">
|
<header className="flex items-center justify-between p-6">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue