refactor feature hooks to be conditionally initialized

This commit is contained in:
jeffvli
2026-01-21 02:23:25 -08:00
parent 9a4a8eb742
commit f4072c183b
12 changed files with 236 additions and 35 deletions
@@ -1,6 +1,6 @@
import { SetActivity, StatusDisplayType } from '@xhayper/discord-rpc';
import isElectron from 'is-electron';
import { useCallback, useEffect, useRef, useState } from 'react';
import React, { useCallback, useEffect, useRef, useState } from 'react';
import { api } from '/@/renderer/api';
import { useItemImageUrl } from '/@/renderer/components/item-image/item-image';
@@ -12,6 +12,7 @@ import {
useLastfmApiKey,
usePlayerSong,
usePlayerStore,
useSettingsStore,
useTimestampStoreBase,
} from '/@/renderer/store';
import { sentenceCase } from '/@/renderer/utils';
@@ -410,3 +411,21 @@ export const useDiscordRpc = () => {
setActivity,
]);
};
const DiscordRpcHookInner = () => {
useDiscordRpc();
return null;
};
export const DiscordRpcHook = () => {
const isElectronEnv = isElectron();
const isDiscordRpcEnabled = useSettingsStore((state) => state.discord.enabled);
const isPrivateMode = useAppStore((state) => state.privateMode);
const discordRpc = isElectronEnv ? window.api.discordRpc : null;
if (!isElectronEnv || !discordRpc || !isDiscordRpcEnabled || isPrivateMode) {
return null;
}
return React.createElement(DiscordRpcHookInner);
};