Skip to content

Commit

Permalink
DeleteCredential added
Browse files Browse the repository at this point in the history
  • Loading branch information
nima70 committed Sep 9, 2024
1 parent 777ee47 commit e7ed3a3
Show file tree
Hide file tree
Showing 5 changed files with 127 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ With the integration of Tailwind CSS, you get access to utility-first CSS for ra
- Error
- Code
- Delete Account Confirm
- Delete Credential

Stay tuned as more pages are upgraded with Tailwind CSS and ShadCN UI components!

Expand Down
11 changes: 11 additions & 0 deletions src/login/KcPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import Terms from "./pages/Terms";
import Error from "./pages/Error";
import Code from "./pages/Code";
import DeleteAccountConfirm from "./pages/DeleteAccountConfirm";
import DeleteCredential from "./pages/DeleteCredential";
const UserProfileFormFields = lazy(() => import("./UserProfileFormFields"));

// Base component to render DefaultPage
Expand Down Expand Up @@ -46,6 +47,16 @@ export default function KcPage(props: { kcContext: KcContext }) {
<Suspense>
{(() => {
switch (kcContext.pageId) {
case "delete-credential.ftl":
return (
<DeleteCredential
kcContext={kcContext}
i18n={i18n}
classes={classescustom}
Template={CustomTemplate}
doUseDefaultCss={true}
/>
);
case "delete-account-confirm.ftl":
return (
<DeleteAccountConfirm
Expand Down
17 changes: 17 additions & 0 deletions src/login/pages/DeleteCredential.stories.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import type { Meta, StoryObj } from "@storybook/react";
import { createKcPageStory } from "../KcPageStory";

const { KcPageStory } = createKcPageStory({ pageId: "delete-credential.ftl" });

const meta = {
title: "login/delete-credential.ftl",
component: KcPageStory
} satisfies Meta<typeof KcPageStory>;

export default meta;

type Story = StoryObj<typeof meta>;

export const Default: Story = {
render: () => <KcPageStory />
};
51 changes: 51 additions & 0 deletions src/login/pages/DeleteCredential.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import { getKcClsx } from "keycloakify/login/lib/kcClsx";
import type { PageProps } from "keycloakify/login/pages/PageProps";
import type { KcContext } from "../KcContext";
import type { I18n } from "../i18n";
import { buttonVariants } from "../../components/ui/button";
export default function DeleteCredential(props: PageProps<Extract<KcContext, { pageId: "delete-credential.ftl" }>, I18n>) {
const { kcContext, i18n, doUseDefaultCss, Template, classes } = props;

const { msgStr, msg } = i18n;

const { kcClsx } = getKcClsx({
doUseDefaultCss,
classes
});

const { url, credentialLabel } = kcContext;

return (
<Template
kcContext={kcContext}
i18n={i18n}
doUseDefaultCss={doUseDefaultCss}
classes={classes}
displayMessage={false}
headerNode={msg("deleteCredentialTitle", credentialLabel)}
>
<div id="kc-delete-text" className="mb-5">
{msg("deleteCredentialMessage", credentialLabel)}
</div>
<form className="form-actions" action={url.loginAction} method="POST">
<div className="space-x-2 ">
<input
className={buttonVariants({ variant: "default" })}
name="accept"
id="kc-accept"
type="submit"
value={msgStr("doConfirmDelete")}
/>
<input
className={buttonVariants({ variant: "secondary" })}
name="cancel-aia"
value={msgStr("doCancel")}
id="kc-decline"
type="submit"
/>
</div>
</form>
<div className="clearfix" />
</Template>
);
}
47 changes: 47 additions & 0 deletions src/login/pages/legacy/DeleteCredentialLegacy.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import { getKcClsx } from "keycloakify/login/lib/kcClsx";
import type { PageProps } from "keycloakify/login/pages/PageProps";
import type { KcContext } from "../../KcContext";
import type { I18n } from "../../i18n";

export default function DeleteCredential(props: PageProps<Extract<KcContext, { pageId: "delete-credential.ftl" }>, I18n>) {
const { kcContext, i18n, doUseDefaultCss, Template, classes } = props;

const { msgStr, msg } = i18n;

const { kcClsx } = getKcClsx({
doUseDefaultCss,
classes
});

const { url, credentialLabel } = kcContext;

return (
<Template
kcContext={kcContext}
i18n={i18n}
doUseDefaultCss={doUseDefaultCss}
classes={classes}
displayMessage={false}
headerNode={msg("deleteCredentialTitle", credentialLabel)}
>
<div id="kc-delete-text">{msg("deleteCredentialMessage", credentialLabel)}</div>
<form className="form-actions" action={url.loginAction} method="POST">
<input
className={kcClsx("kcButtonClass", "kcButtonPrimaryClass", "kcButtonLargeClass")}
name="accept"
id="kc-accept"
type="submit"
value={msgStr("doConfirmDelete")}
/>
<input
className={kcClsx("kcButtonClass", "kcButtonDefaultClass", "kcButtonLargeClass")}
name="cancel-aia"
value={msgStr("doCancel")}
id="kc-decline"
type="submit"
/>
</form>
<div className="clearfix" />
</Template>
);
}

0 comments on commit e7ed3a3

Please sign in to comment.