* feat: add README for @cio/db package and remove existingAccounts.json * load session, load profile and organization, add create profile hook * chore: cache session request The trick was passing all the cookies to the backend. Previously I was only passing the better-auth.session_token and not better-auth.session_data. Read about the difference here https://www.better-auth.com/docs/concepts/cookies#custom-cookies * feat: login, logout, onboarding, verify email, reset password. * feat: complete change email and email verification * feat: standardise how we make rpc calls and create org endpoints * fix ui errors * fix: handle potential undefined customerId and standardize avatar URL property * refactor: standardize custom domain handling and update telegram chat ID references * chore: add tailwind prefix to @cio/ui this fixed the media query issues because @cio/ui classes were overriding this dashboard tailwind build * chore: clean up org sidebar * chore: persist mode state * feat: implement order breadcrumbs * chore: upgrade to better auth 1.4 * chore: address common auth flow bugs and setup app for others to setup locally.
29 lines
909 B
TypeScript
29 lines
909 B
TypeScript
import * as z from 'zod';
|
|
|
|
import { defineEmail } from '../send';
|
|
import { getDefaultTemplate } from '../templates';
|
|
|
|
export const forgotPasswordEmail = defineEmail({
|
|
id: 'forgotPassword',
|
|
subject: 'Password reset notification - ClassroomIO',
|
|
schema: z.object({
|
|
email: z.email(),
|
|
name: z.string().min(1),
|
|
link: z.url()
|
|
}),
|
|
render: (fields) => {
|
|
const content = `Hello ${fields.name},
|
|
<p>You are receiving this email because you have requested a password reset for your ClassroomIO account.</p>
|
|
<p>Please click the button below to reset your password:</p>
|
|
|
|
<div>
|
|
<a class="button" href="${fields.link}">Reset my password</a>
|
|
</div>
|
|
|
|
<p>PS: If you did not initiate this request, reply to this email or write to [email protected] so we can look into a possible attempt to breach your account.</p>
|
|
`;
|
|
|
|
return getDefaultTemplate(content);
|
|
}
|
|
});
|