From 727603ff46c443017e0785442a54987e94992c5d Mon Sep 17 00:00:00 2001 From: cocobo1 Date: Sat, 9 May 2026 08:09:09 +0000 Subject: [PATCH 1/3] fix: settings on 329.3 --- src/lib/ui/settings/patches/tabs.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lib/ui/settings/patches/tabs.tsx b/src/lib/ui/settings/patches/tabs.tsx index 9623034..3de056e 100644 --- a/src/lib/ui/settings/patches/tabs.tsx +++ b/src/lib/ui/settings/patches/tabs.tsx @@ -21,7 +21,9 @@ export function patchTabsUI(unpatches: (() => void | boolean)[]) { .flatMap(sect => sect.map(row => ({ [row.key]: { type: "pressable", + // title was renamed to useTitle, both are here for compatibility (thanks kmiioo) https://codeberg.org/raincord/rain/pulls/52 title: row.title, + useTitle: row.title, icon: row.icon, IconComponent: () => , usePredicate: row.usePredicate, @@ -44,6 +46,7 @@ export function patchTabsUI(unpatches: (() => void | boolean)[]) { VendettaCustomPage: { type: "route", title: () => "Kettu", + useTitle: () => "Kettu", screen: { route: "VendettaCustomPage", getComponent: () => CustomPageRenderer @@ -52,6 +55,7 @@ export function patchTabsUI(unpatches: (() => void | boolean)[]) { PUPU_CUSTOM_PAGE: { type: "route", title: () => "Kettu", + useTitle: () => "Kettu", screen: { route: "PUPU_CUSTOM_PAGE", getComponent: () => CustomPageRenderer @@ -60,6 +64,7 @@ export function patchTabsUI(unpatches: (() => void | boolean)[]) { BUNNY_CUSTOM_PAGE: { type: "route", title: () => "Kettu", + useTitle: () => "Kettu", screen: { route: "BUNNY_CUSTOM_PAGE", getComponent: () => CustomPageRenderer From 61751664c53a23b355a2d36706f92393926a66ac Mon Sep 17 00:00:00 2001 From: cocobo1 Date: Thu, 14 May 2026 20:06:34 +0000 Subject: [PATCH 2/3] fix: settings on alpha 330.1+ --- src/lib/ui/settings/index.tsx | 3 +-- src/lib/ui/settings/patches/tabs.tsx | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/lib/ui/settings/index.tsx b/src/lib/ui/settings/index.tsx index 364a34b..0ed95f4 100644 --- a/src/lib/ui/settings/index.tsx +++ b/src/lib/ui/settings/index.tsx @@ -12,8 +12,7 @@ export interface RowConfig { icon?: ImageURISource | number; IconComponent?: React.ReactNode, usePredicate?: () => boolean, - useTrailing?: () => string | JSX.Element, - rawTabsConfig?: Record; + useTrailing?: () => string | JSX.Element } export const registeredSections = {} as { diff --git a/src/lib/ui/settings/patches/tabs.tsx b/src/lib/ui/settings/patches/tabs.tsx index 3de056e..027f5b0 100644 --- a/src/lib/ui/settings/patches/tabs.tsx +++ b/src/lib/ui/settings/patches/tabs.tsx @@ -29,8 +29,7 @@ export function patchTabsUI(unpatches: (() => void | boolean)[]) { usePredicate: row.usePredicate, useTrailing: row.useTrailing, onPress: wrapOnPress(row.onPress, null, row.render, row.title()), - withArrow: true, - ...row.rawTabsConfig + withArrow: true } }))) .reduce((a, c) => Object.assign(a, c)); From 2155a2a0554f09594899373cfd74b4b77581e80c Mon Sep 17 00:00:00 2001 From: kmmiio99o Date: Fri, 15 May 2026 21:41:32 +0200 Subject: [PATCH 3/3] feat: fix crash in Themes page --- src/core/i18n/index.ts | 13 +++++++++++-- src/core/ui/components/AddonCard.tsx | 5 +++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/core/i18n/index.ts b/src/core/i18n/index.ts index c3ec1ef..f745e98 100644 --- a/src/core/i18n/index.ts +++ b/src/core/i18n/index.ts @@ -156,6 +156,15 @@ export function formatString( val: Record, ): FormatStringRet { const str = Strings[key]; - // @ts-ignore - return new IntlMessageFormat(str).format(val); + if (!str) return str as FormatStringRet; + try { + // @ts-ignore + return new IntlMessageFormat(str).format(val); + } catch (e) { + if (e instanceof SyntaxError) { + logger.warn(`[i18n] Failed to parse message for key "${String(key)}":`, e.message); + return str as FormatStringRet; + } + throw e; + } } diff --git a/src/core/ui/components/AddonCard.tsx b/src/core/ui/components/AddonCard.tsx index e369090..fcce763 100644 --- a/src/core/ui/components/AddonCard.tsx +++ b/src/core/ui/components/AddonCard.tsx @@ -34,6 +34,7 @@ const useStyles = createStyles({ headerLeading: { flexDirection: "column", justifyContent: "center", + flexShrink: 1, scale: 1.2, }, headerTrailing: { @@ -108,9 +109,9 @@ export default function AddonCard(props: CardProps) { - {props.headerLabel} + {props.headerLabel} {props.headerSublabel && ( - {props.headerSublabel} + {props.headerSublabel} )}