diff --git a/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/members/page.tsx b/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/members/page.tsx
index 0c7e14dbb..c46c368ac 100644
--- a/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/members/page.tsx
+++ b/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/members/page.tsx
@@ -42,9 +42,9 @@ export default async function GroupsDetailPage(props: GroupsDetailPageProps) {
const isReserved = group.name === everyoneGroup;
const searchTerm = searchParams.search?.trim().toLowerCase();
- const filteredMembers = searchTerm
- ? group.members.filter((member) => member.name?.toLowerCase().includes(searchTerm))
- : group.members;
+ const filteredMembers = group.members.filter(
+ (member) => !searchTerm || member.name?.toLowerCase().includes(searchTerm),
+ );
// "local" = every enabled provider managed locally, "external" = none, "mixed" = some.
const managementType = getGroupMemberManagementType();
diff --git a/packages/definitions/src/docs/homarr-docs-sitemap.ts b/packages/definitions/src/docs/homarr-docs-sitemap.ts
index 9f906f95e..6309a0d36 100644
--- a/packages/definitions/src/docs/homarr-docs-sitemap.ts
+++ b/packages/definitions/src/docs/homarr-docs-sitemap.ts
@@ -233,7 +233,6 @@ export type HomarrDocumentationPath =
| "/docs/management/search-engines"
| "/docs/management/settings"
| "/docs/management/tasks"
- | "/docs/management/tools/backup"
| "/docs/management/users"
| "/docs/widgets/anchor-note"
| "/docs/widgets/app"
diff --git a/packages/integrations/src/mock/data/beszel.ts b/packages/integrations/src/mock/data/beszel.ts
index ea191af81..5f2a26389 100644
--- a/packages/integrations/src/mock/data/beszel.ts
+++ b/packages/integrations/src/mock/data/beszel.ts
@@ -375,7 +375,7 @@ export class BeszelMockService {
name: names[i % names.length] ?? "CPU",
val: rand(60, 95),
created: new Date(now - (i + 1) * 3_600_000).toISOString(),
- resolved: i % 2 === 0 ? new Date(now - i * 1_800_000).toISOString() : null,
+ resolved: i % 2 === 0 && new Date(now - i * 1_800_000).toISOString() || null,
}));
}
}
diff --git a/packages/widgets/src/_inputs/widget-integration-select-input.tsx b/packages/widgets/src/_inputs/widget-integration-select-input.tsx
index 0b0f8f51b..e91c07a7e 100644
--- a/packages/widgets/src/_inputs/widget-integration-select-input.tsx
+++ b/packages/widgets/src/_inputs/widget-integration-select-input.tsx
@@ -23,10 +23,8 @@ export const WidgetIntegrationSelectInput = ({
const { data: selectData = [], isPending, isError } = options.useOptions(integrationIds);
const currentValue = form.getInputProps(`options.${property}`).value as string;
- const data =
- currentValue && !selectData.some((opt) => opt.value === currentValue)
- ? [...selectData, { value: currentValue, label: currentValue }]
- : selectData;
+ const hasCurrentInData = !currentValue || selectData.some((opt) => opt.value === currentValue);
+ const data = hasCurrentInData ? selectData : [...selectData, { value: currentValue, label: currentValue }];
if (integrationIds.length === 0) {
return (
@@ -36,17 +34,21 @@ export const WidgetIntegrationSelectInput = ({
);
}
+ const description = options.withDescription ? tInput("description") : undefined;
+ const placeholder = isPending ? t("loading") : t("placeholder");
+ const error = isError ? t("loadError") : undefined;
+
return (
);
diff --git a/packages/widgets/src/beszel-system-stats/component.tsx b/packages/widgets/src/beszel-system-stats/component.tsx
index 3c7062633..d7669a93c 100644
--- a/packages/widgets/src/beszel-system-stats/component.tsx
+++ b/packages/widgets/src/beszel-system-stats/component.tsx
@@ -182,6 +182,7 @@ export default function BeszelSystemStatsWidget({