diff --git a/plugins/radial-status/src/index.ts b/plugins/radial-status/src/index.ts index daa1df7..e53d522 100644 --- a/plugins/radial-status/src/index.ts +++ b/plugins/radial-status/src/index.ts @@ -8,6 +8,10 @@ let unpatchAll: () => void = () => {}; export default { onLoad: () => { + // Off by default - see the note in patches/ringPatch.ts. Confirmed on-device to corrupt + // member list rows and the profile status indicator, and to never match YouBar's own + // indicator at all - being re-diagnosed properly before this defaults back on. + storage.enabled ??= false; storage.colors ??= { online: "#23A55A", idle: "#F0B232", diff --git a/plugins/radial-status/src/patches/ringPatch.ts b/plugins/radial-status/src/patches/ringPatch.ts index e3e1fe4..95dd4fe 100644 --- a/plugins/radial-status/src/patches/ringPatch.ts +++ b/plugins/radial-status/src/patches/ringPatch.ts @@ -20,6 +20,13 @@ export default function patchRing(): () => void { return before("render", General.View, (args: any[]) => { try { + // Off by default - the broadened circle match below turned out to false-positive on + // unrelated Views in the member list (confirmed by on-device testing: it visibly + // corrupted member list rows and the profile status indicator, and never matched + // YouBar's own indicator at all), so this no longer runs unless explicitly turned on + // while it's being properly re-diagnosed with live capture data. + if (!storage.enabled) return; + const [wrapper] = args; if (!wrapper || !Array.isArray(wrapper.style)) return; diff --git a/plugins/radial-status/src/ui/Settings.tsx b/plugins/radial-status/src/ui/Settings.tsx index 4777017..d0075f8 100644 --- a/plugins/radial-status/src/ui/Settings.tsx +++ b/plugins/radial-status/src/ui/Settings.tsx @@ -6,7 +6,7 @@ import SettingsScaffold from "@shared/ui/SettingsScaffold"; import ColorInput from "@shared/ui/ColorInput"; import NoteBox from "@shared/ui/NoteBox"; -const { FormSection, FormInput } = Forms; +const { FormSection, FormInput, FormSwitchRow } = Forms; const STATUSES: { key: string; label: string; defaultColor: string }[] = [ { key: "online", label: "Online", defaultColor: "#23A55A" }, @@ -36,9 +36,18 @@ export default function Settings() { return ( - Replaces the small presence dot on an avatar with a colored ring instead, per status - below. Leave a status blank to keep showing the normal dot for it. + Off by default right now - the current matching logic was confirmed to corrupt member + list rows and the profile status indicator, and to miss YouBar's own indicator + entirely. Being properly re-diagnosed; only turn this on if you're helping test it. + + { storage.enabled = v; }} + /> + {STATUSES.map(({ key, label, defaultColor }) => (