fix release v2 review issues
This commit is contained in:
1 parent
ef2ed6c602
commit
ca856f9f54
29 files changed
+508
-131
No files matched your search
@@ -11,4 +11,13 @@ describe("buildSortedIntegrations", () => {
|
||||
expect(kinds).toHaveLength(integrationKinds.length - 1);
|
||||
expect(kinds).not.toContain("mock");
|
||||
});
|
||||
|
||||
it("limits the grid to the allowed integration kinds", () => {
|
||||
const kinds = buildSortedIntegrations({ allowedKinds: ["jellyfin", "sonarr"] }).map(
|
||||
(integration) => integration.kind,
|
||||
);
|
||||
|
||||
expect(kinds).toEqual(expect.arrayContaining(["jellyfin", "sonarr"]));
|
||||
expect(kinds).toHaveLength(2);
|
||||
});
|
||||
});
|
||||
@@ -47,10 +47,15 @@ export interface IntegrationGridItem {
|
||||
}
|
||||
|
||||
export const buildSortedIntegrations = (
|
||||
options: { enableMockIntegration?: boolean; onboarding?: boolean } = {},
|
||||
options: {
|
||||
enableMockIntegration?: boolean;
|
||||
onboarding?: boolean;
|
||||
allowedKinds?: readonly IntegrationKind[];
|
||||
} = {},
|
||||
): IntegrationGridItem[] =>
|
||||
integrationKinds
|
||||
.filter((kind) => {
|
||||
if (options.allowedKinds && !options.allowedKinds.includes(kind)) return false;
|
||||
if (options.onboarding && hiddenFromOnboarding.has(kind)) return false;
|
||||
if (!options.enableMockIntegration && kind === "mock") return false;
|
||||
return true;
|
||||
|
||||
@@ -15,12 +15,20 @@ import classes from "./integration-select-grid.module.css";
|
||||
export interface IntegrationSelectGridProps {
|
||||
onSelect: (kind: IntegrationKind) => void;
|
||||
enableMockIntegration?: boolean;
|
||||
allowedKinds?: readonly IntegrationKind[];
|
||||
}
|
||||
|
||||
export const IntegrationSelectGrid = ({ onSelect, enableMockIntegration = false }: IntegrationSelectGridProps) => {
|
||||
export const IntegrationSelectGrid = ({
|
||||
onSelect,
|
||||
enableMockIntegration = false,
|
||||
allowedKinds,
|
||||
}: IntegrationSelectGridProps) => {
|
||||
const [search, setSearch] = useState("");
|
||||
const t = useI18n();
|
||||
const integrations = useMemo(() => buildSortedIntegrations({ enableMockIntegration }), [enableMockIntegration]);
|
||||
const integrations = useMemo(
|
||||
() => buildSortedIntegrations({ enableMockIntegration, allowedKinds }),
|
||||
[allowedKinds, enableMockIntegration],
|
||||
);
|
||||
const filtered = useMemo(() => filterIntegrations(integrations, search), [integrations, search]);
|
||||
|
||||
return (
|
||||
|
||||
Reference in new issue
Block a user