feat: redo settings and all org pages. (#601)
* feat: new components, deploy storybook * refactor: simplify component field definitions and enhance button loading state - Removed unnecessary type imports and simplified the FIELDS array definitions across multiple components in Storybook. - Updated button component to use a loading state instead of isLoading, improving clarity and consistency in props. - Adjusted button stories to reflect the new loading prop and enhanced the button's loading visual feedback. - Minor CSS adjustments for better layout and styling consistency. * chore: add field, card, password components * feat: improve page component & update AuthUI path * chore: update bits-ui to version 2.14.4 and all org related UI's - Updated bits-ui dependency in pnpm-lock.yaml and package.json to version 2.14.4. - Refactored imports for RoleBasedSecurity and UpgradeBanner components to use the new ui feature directory. - Removed unused Course components and related files to clean up the codebase. - Enhanced various components to improve consistency and maintainability. * chore: move all setting buttons to the top and update auth ui styles * chore: remove svelte-loading-spinners and replace with @cio/ui/base/spinner - Removed all instances of svelte-loading-spinners from the project. - Updated components to use the new Spinner from @cio/ui/base/spinner. - Cleaned up pnpm-lock.yaml and package.json to reflect the removal of svelte-loading-spinners. - Added new CSS animations for rocket launch effects in app.css. - Enhanced email change flow with updated verification messages in translations. * chore: remove supabase file upload from dashboard and move to r2 * chore: update organization API and UI components - Added new API methods for organization plan operations and team management. - Introduced middleware for API key authentication and organization admin checks. - Refactored organization-related components to utilize the new API structure. - Updated various UI components to improve consistency and maintainability. - Enhanced error handling and validation for organization-related actions. - Removed deprecated services and streamlined the codebase.
This commit is contained in:
@@ -10,9 +10,11 @@ export * from './forgot-password';
|
||||
export * from './welcome';
|
||||
export * from './verify-email';
|
||||
export * from './on-password-reset';
|
||||
export * from './invite-teacher';
|
||||
|
||||
// Import types for schema mapping (must be after exports to avoid circular dependency)
|
||||
import type { forgotPasswordEmail } from './forgot-password';
|
||||
import type { inviteTeacherEmail } from './invite-teacher';
|
||||
import type { onPasswordResetEmail } from './on-password-reset';
|
||||
import type { verifyEmailEmail } from './verify-email';
|
||||
import type { welcomeEmail } from './welcome';
|
||||
@@ -28,4 +30,5 @@ export type EmailSchemas = {
|
||||
welcome: typeof welcomeEmail.template.schema;
|
||||
verifyEmail: typeof verifyEmailEmail.template.schema;
|
||||
onPasswordReset: typeof onPasswordResetEmail.template.schema;
|
||||
inviteTeacher: typeof inviteTeacherEmail.template.schema;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import { z } from 'zod';
|
||||
import { defineEmail } from '../send';
|
||||
import { getDefaultTemplate } from '../templates';
|
||||
|
||||
export const inviteTeacherEmail = defineEmail({
|
||||
id: 'inviteTeacher',
|
||||
subject: 'Join us on ClassroomIO 😃',
|
||||
schema: z.object({
|
||||
email: z.string().email(),
|
||||
orgName: z.string().min(1),
|
||||
orgSiteName: z.string().min(1),
|
||||
inviteLink: z.url()
|
||||
}),
|
||||
render: (fields) => {
|
||||
const content = `
|
||||
<p>Hey there,</p>
|
||||
<p>You have been invited to join ${fields.orgName} on ClassroomIO 🎉🎉🎉.</p>
|
||||
<div>
|
||||
<a class="button" href="${fields.inviteLink}">Accept Invitation</a>
|
||||
</div>
|
||||
`;
|
||||
|
||||
return getDefaultTemplate(content);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export const EMAIL_IDS = ['forgotPassword', 'welcome', 'verifyEmail', 'onPasswordReset'] as const;
|
||||
export const EMAIL_IDS = ['forgotPassword', 'welcome', 'verifyEmail', 'onPasswordReset', 'inviteTeacher'] as const;
|
||||
|
||||
export const EMAIL_FROM = '"Best from ClassroomIO" <[email protected]>';
|
||||
export const EMAIL_REPLY_TO = '"Best from ClassroomIO" <[email protected]>';
|
||||
|
||||
Reference in New Issue
Block a user