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:
@@ -1,5 +1,7 @@
|
||||
import * as z from 'zod';
|
||||
|
||||
import { blockedSubdomain } from '@cio/utils/constants';
|
||||
|
||||
export const ZGetOrganizations = z.object({
|
||||
siteName: z.string().min(1).optional(),
|
||||
customDomain: z.string().min(1).optional(),
|
||||
@@ -14,6 +16,12 @@ export const ZGetOrganizationTeam = z.object({
|
||||
|
||||
export type TGetOrganizationTeam = z.infer<typeof ZGetOrganizationTeam>;
|
||||
|
||||
export const ZUpdateOrganizationParam = z.object({
|
||||
orgId: z.uuid()
|
||||
});
|
||||
|
||||
export type TUpdateOrganizationParam = z.infer<typeof ZUpdateOrganizationParam>;
|
||||
|
||||
export const ZGetOrganizationAudience = z.object({
|
||||
orgId: z.uuid()
|
||||
});
|
||||
@@ -26,6 +34,12 @@ export const ZGetCoursesBySiteName = z.object({
|
||||
|
||||
export type TGetCoursesBySiteName = z.infer<typeof ZGetCoursesBySiteName>;
|
||||
|
||||
export const ZGetOrgSetup = z.object({
|
||||
siteName: z.string().min(1)
|
||||
});
|
||||
|
||||
export type TGetOrgSetup = z.infer<typeof ZGetOrgSetup>;
|
||||
|
||||
export const ZCreateOrgPlan = z.object({
|
||||
orgId: z.uuid(),
|
||||
planName: z.enum(['EARLY_ADOPTER', 'ENTERPRISE', 'BASIC']),
|
||||
@@ -49,3 +63,56 @@ export const ZCancelOrgPlan = z.object({
|
||||
});
|
||||
|
||||
export type TCancelOrgPlan = z.infer<typeof ZCancelOrgPlan>;
|
||||
|
||||
export const ZCreateOrganization = z.object({
|
||||
name: z
|
||||
.string()
|
||||
.min(5)
|
||||
.refine((val) => !/^[-]|[-]$/.test(val), {
|
||||
message: 'Organization name cannot start or end with a hyphen'
|
||||
}),
|
||||
siteName: z
|
||||
.string()
|
||||
.min(5)
|
||||
.refine((val) => !/^[-]|[-]$/.test(val), {
|
||||
message: 'Site name cannot start or end with a hyphen'
|
||||
})
|
||||
.refine((val) => !blockedSubdomain.includes(val), {
|
||||
message: 'Sitename already exists.'
|
||||
})
|
||||
});
|
||||
|
||||
export type TCreateOrganization = z.infer<typeof ZCreateOrganization>;
|
||||
|
||||
export const ZUpdateOrganization = z.object({
|
||||
name: z
|
||||
.string()
|
||||
.min(5)
|
||||
.refine((val) => !/^[-]|[-]$/.test(val), {
|
||||
message: 'Organization name cannot start or end with a hyphen'
|
||||
})
|
||||
.optional(),
|
||||
avatarUrl: z.url().optional(),
|
||||
theme: z.string().optional(),
|
||||
landingpage: z.record(z.string(), z.unknown()).optional(),
|
||||
siteName: z.string().min(1).optional(),
|
||||
customDomain: z.string().nullable().optional(),
|
||||
isCustomDomainVerified: z.boolean().optional(),
|
||||
customization: z.record(z.string(), z.unknown()).optional()
|
||||
});
|
||||
|
||||
export type TUpdateOrganization = z.infer<typeof ZUpdateOrganization>;
|
||||
|
||||
export const ZInviteTeamMembers = z.object({
|
||||
emails: z.array(z.string().email()).min(1).max(50),
|
||||
roleId: z.number().int().positive()
|
||||
});
|
||||
|
||||
export type TInviteTeamMembers = z.infer<typeof ZInviteTeamMembers>;
|
||||
|
||||
export const ZRemoveTeamMember = z.object({
|
||||
orgId: z.uuid(),
|
||||
memberId: z.number().int().positive()
|
||||
});
|
||||
|
||||
export type TRemoveTeamMember = z.infer<typeof ZRemoveTeamMember>;
|
||||
|
||||
Reference in New Issue
Block a user