Files
HackTips2 579a803ff0
Generate plugins.json / generate (push) Waiting to run
add "compact mode"
2026-06-03 15:47:16 +02:00

80 lines
3.8 KiB
Python

with open(r"C:\Users\zzafi\Documents\GitHub\nightcord\src\api\HeaderBar.tsx", "rb") as f:
raw = f.read()
content = raw.decode("utf-8-sig", errors="replace")
old_func = 'function HeaderBarButtons() {\n const [, forceUpdate] = useState(0);\n\n useEffect(() => {\n const listener = () => forceUpdate(n => n + 1);\n headerBarListeners.add(listener);\n stealthListeners.add(listener);\n window.addEventListener("nightcord-stealth-change", listener);\n return () => {\n headerBarListeners.delete(listener);\n stealthListeners.delete(listener);\n window.removeEventListener("nightcord-stealth-change", listener);\n };\n }, []);\n\n if (isStealthModeEnabled()) return null;\n\n return (\n <div className="vc-header-bar-btns" style={{ display: "contents" }}>\n {Array.from(headerBarButtons)\n .sort(([, a], [, b]) => a.priority - b.priority)\n .map(([id, { render: Button }]) => (\n <ErrorBoundary noop key={id} onError={e => logger.error(`Failed to render header bar button: ${id}`, e.error)}>\n <Button />\n </ErrorBoundary>\n ))}\n </div>\n );\n}'
new_func = '''const GridVerticalIcon = findComponentByCodeLazy("M3 3h7v7H3V3zm0 11h7v7H3v-7zm11-11h7v7h-7V3zm0 11h7v7h-7v-7z");
function CompactHeaderBarToggle() {
const [, forceUpdate] = useState(0);
useEffect(() => {
const listener = () => forceUpdate(n => n + 1);
compactListeners.add(listener);
window.addEventListener("nightcord-compact-change", listener);
return () => {
compactListeners.delete(listener);
window.removeEventListener("nightcord-compact-change", listener);
};
}, []);
return (
<HeaderBarButton
icon={GridVerticalIcon}
tooltip="Compact Mode \u2014 Click to expand Nightcord buttons"
onClick={toggleCompactMode}
selected={false}
/>
);
}
function HeaderBarButtons() {
const [, forceUpdate] = useState(0);
useEffect(() => {
const listener = () => forceUpdate(n => n + 1);
headerBarListeners.add(listener);
stealthListeners.add(listener);
compactListeners.add(listener);
window.addEventListener("nightcord-stealth-change", listener);
window.addEventListener("nightcord-compact-change", listener);
return () => {
headerBarListeners.delete(listener);
stealthListeners.delete(listener);
compactListeners.delete(listener);
window.removeEventListener("nightcord-stealth-change", listener);
window.removeEventListener("nightcord-compact-change", listener);
};
}, []);
if (isStealthModeEnabled()) return null;
if (isCompactModeEnabled()) {
return (
<div className="vc-header-bar-btns" style={{ display: "contents" }}>
<CompactHeaderBarToggle />
</div>
);
}
return (
<div className="vc-header-bar-btns" style={{ display: "contents" }}>
{Array.from(headerBarButtons)
.sort(([, a], [, b]) => a.priority - b.priority)
.map(([id, { render: Button }]) => (
<ErrorBoundary noop key={id} onError={e => logger.error(`Failed to render header bar button: ${id}`, e.error)}>
<Button />
</ErrorBoundary>
))}
</div>
);
}'''
content = content.replace(old_func, new_func)
print("Replaced HeaderBarButtons OK")
with open(r"C:\Users\zzafi\Documents\GitHub\nightcord\src\api\HeaderBar.tsx", "w", encoding="utf-8") as f:
f.write(content)
print("File written OK")