Files
plane/apps/admin/components/authentication/github-config.tsx
anmolsinghbhatia 3a6301711e refactor: migrate admin icons to @makeplane/propel
Replace confirmed icon symbols in apps/admin with their audited
@makeplane/propel/icons targets, merging into the imports the six
already-migrated files declared. Unresolved symbols (Menu, BrainCog)
and the LucideIcon type stay on lucide-react.

Lucide size props become explicit width/height. Loader keeps its
LoaderIcon alias so the call site is unchanged.

apps/admin already declared @makeplane/propel, so no dependency change
was needed.
2026-09-01 18:15:57 +05:30

67 lines
2.1 KiB
TypeScript

/**
* Copyright (c) 2023-present Plane Software, Inc. and contributors
* SPDX-License-Identifier: AGPL-3.0-only
* See the LICENSE file for details.
*/
import { observer } from "mobx-react";
import Link from "next/link";
// icons
import { SettingsOutline } from "@makeplane/propel/icons";
// plane internal packages
import { AnchorButton } from "@makeplane/propel/components/anchor-button";
import { Button } from "@makeplane/propel/components/button";
import { Switch } from "@makeplane/propel/components/switch";
import type { TInstanceAuthenticationMethodKeys } from "@plane/types";
// hooks
import { useInstance } from "@/hooks/store";
type Props = {
disabled: boolean;
updateConfig: (key: TInstanceAuthenticationMethodKeys, value: string) => void;
};
export const GithubConfiguration = observer(function GithubConfiguration(props: Props) {
const { disabled, updateConfig } = props;
// store
const { formattedConfig } = useInstance();
// derived values
const enableGithubConfig = formattedConfig?.IS_GITHUB_ENABLED ?? "";
const isGithubConfigured = !!formattedConfig?.GITHUB_CLIENT_ID && !!formattedConfig?.GITHUB_CLIENT_SECRET;
return (
<>
{isGithubConfigured ? (
<div className="flex items-center gap-4">
<AnchorButton
variant="primary"
size="sm"
nativeButton={false}
render={<Link href="/authentication/github" />}
label="Edit"
/>
<Switch
checked={Boolean(parseInt(enableGithubConfig))}
onCheckedChange={() => {
const newEnableGithubConfig = Boolean(parseInt(enableGithubConfig)) === true ? "0" : "1";
updateConfig("IS_GITHUB_ENABLED", newEnableGithubConfig);
}}
size="sm"
disabled={disabled}
/>
</div>
) : (
<Button
variant="secondary"
size="sm"
stretch="auto"
nativeButton={false}
render={<Link href="/authentication/github" />}
icon={<SettingsOutline className="h-4 w-4 p-0.5 text-tertiary" />}
label="Configure"
/>
)}
</>
);
});