@solidxai/core-ui 0.1.11 → 0.1.12-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts +1 -1
- package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts.map +1 -1
- package/dist/adapters/auth/signInWithOAuthAccessCode.js.map +1 -1
- package/dist/adapters/auth/signInWithOAuthAccessCode.ts +1 -1
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +5 -4
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +3 -1
- package/dist/components/auth/SolidRegister.d.ts.map +1 -1
- package/dist/components/auth/SolidRegister.js +7 -6
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +3 -1
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +46 -43
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +22 -0
- package/dist/components/common/SocialMediaLogin.d.ts +2 -1
- package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
- package/dist/components/common/SocialMediaLogin.js +6 -6
- package/dist/components/common/SocialMediaLogin.js.map +1 -1
- package/dist/components/common/SocialMediaLogin.tsx +36 -8
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +2 -0
- package/dist/resources/solid-custom.css +2 -2
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +2 -0
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +2 -0
- package/dist/routes/types.d.ts +1 -1
- package/dist/routes/types.d.ts.map +1 -1
- package/dist/routes/types.js.map +1 -1
- package/dist/routes/types.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeneralSettings.js","sourceRoot":"","sources":["../../../src/components/common/GeneralSettings.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useFormik } from 'formik';\nimport { useCallback, useEffect, useState } from 'react'\nimport { CancelButton } from './CancelButton';\nimport { ApiKeysTab } from '../core/users/ApiKeysTab';\nimport { useSession } from '../../hooks/useSession';\nimport { SolidButton, SolidDivider, SolidInput, SolidSegmentedControl, SolidSwitch, SolidTabGroup, SolidTextarea } from '../shad-cn-ui';\nimport { usePathname } from \"../../hooks/usePathname\";\nimport SolidLogo from '../../resources/images/SolidXLogo.svg'\nimport AuthScreenRightBackgroundImage from '../../resources/images/auth/solid-left-layout-bg.png';\nimport AuthScreenLeftBackgroundImage from '../../resources/images/auth/solid-right-layout-bg.png';\nimport AuthScreenCenterBackgroundImage from '../../resources/images/auth/solid-login-light.png';\nimport { useDropzone } from 'react-dropzone';\nimport { SettingDropzoneActivePlaceholder } from './SolidSettings/SettingDropzoneActivePlaceholder';\nimport { SolidUploadedImage } from './SolidSettings/SolidUploadedImage';\nimport { SettingsImageRemoveButton } from './SolidSettings/SettingsImageRemoveButton';\nimport { ModelConfigTab, ProvidersTab, ModelBehavior, ModelEntry, SolidAiConfig, ensureBuiltInProviders } from './SolidSettings/LlmSettings/AiModelConfigTab';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ERROR_MESSAGES } from '../../constants/error-messages';\nimport { useBulkUpdateSolidSettingsMutation, useLazyGetSolidSettingsQuery } from '../../redux/api/solidSettingsApi';\nimport { env } from \"../../adapters/env\";\nimport { showToast } from \"../../redux/features/toastSlice\";\n\nexport const GeneralSettings = () => {\n const { data: session } = useSession();\n const [appLogoPreview, setAppLogoPreview] = useState<string | null>(null);\n const [companyLogoPreview, setCompanyLogoPreview] = useState<string | null>(null);\n const [authScreenRightBackgroundImagePreview, setAuthScreenRightBackgroundImagePreview] = useState<string | null>(null);\n const [authScreenLeftBackgroundImagePreview, setAuthScreenLeftBackgroundImagePreview] = useState<string | null>(null);\n const [authScreenCenterBackgroundImagePreview, setAuthScreenCenterBackgroundImagePreview] = useState<string | null>(null);\n const dispatch = useDispatch()\n\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [trigger])\n const pathname = usePathname();\n const [bulkUpdateSolidSettings] = useBulkUpdateSolidSettingsMutation();\n const initialValues = {\n appLogo: solidSettingsData?.data?.appLogo ?? null,\n companylogo: solidSettingsData?.data?.companylogo ?? null,\n passwordlessRegistrationValidateWhat: solidSettingsData?.data?.passwordlessRegistrationValidateWhat ?? \"email\",\n passwordlessLoginValidateWhat: solidSettingsData?.data?.passwordlessLoginValidateWhat ?? \"email\",\n allowPublicRegistration: solidSettingsData?.data?.allowPublicRegistration ?? false,\n passwordBasedAuth: solidSettingsData?.data?.passwordBasedAuth ?? false,\n passwordLessAuth: solidSettingsData?.data?.passwordLessAuth ?? false,\n activateUserOnRegistration: solidSettingsData?.data?.activateUserOnRegistration ?? false,\n iamGoogleOAuthEnabled: solidSettingsData?.data?.iamGoogleOAuthEnabled ?? false,\n iamMicrosoftOAuthEnabled: solidSettingsData?.data?.iamMicrosoftOAuthEnabled ?? false,\n iamFacebookOAuthEnabled: solidSettingsData?.data?.iamFacebookOAuthEnabled ?? false,\n iamAppleOAuthEnabled: solidSettingsData?.data?.iamAppleOAuthEnabled ?? false,\n // shouldQueueEmails: solidSettingsData?.data?.shouldQueueEmails ?? false,\n // shouldQueueSms: solidSettingsData?.data?.shouldQueueSms ?? false,\n authPagesLayout: solidSettingsData?.data?.authPagesLayout ?? \"center\",\n defaultRole: solidSettingsData?.data?.defaultRole ?? \"Admin\",\n appLogoPosition: solidSettingsData?.data?.appLogoPosition ?? \"in_form_view\",\n showAuthContent: solidSettingsData?.data?.showAuthContent ?? false,\n appTitle: solidSettingsData?.data?.appTitle ?? \"SolidX\",\n appSubtitle: solidSettingsData?.data?.appSubtitle ?? \"Welcome To\",\n appDescription: solidSettingsData?.data?.appDescription ?? \"appDescription\",\n showLegalLinks: solidSettingsData?.data?.showLegalLinks ?? false,\n appTnc: solidSettingsData?.data?.appTnc ?? null,\n appPrivacyPolicy: solidSettingsData?.data?.appPrivacyPolicy ?? null,\n enableDarkMode: solidSettingsData?.data?.enableDarkMode ?? false,\n copyright: solidSettingsData?.data?.copyright ?? null,\n forceChangePasswordOnFirstLogin: solidSettingsData?.data?.forceChangePasswordOnFirstLogin ?? false,\n contactSupportEmail: solidSettingsData?.data?.contactSupportEmail ?? null,\n contactSupportDisplayName: solidSettingsData?.data?.contactSupportDisplayName ?? null,\n contactSupportIcon: solidSettingsData?.data?.contactSupportIcon ?? null,\n authScreenRightBackgroundImage: solidSettingsData?.data?.authScreenRightBackgroundImage ?? null,\n authScreenLeftBackgroundImage: solidSettingsData?.data?.authScreenLeftBackgroundImage ?? null,\n authScreenCenterBackgroundImage: solidSettingsData?.data?.authScreenCenterBackgroundImage ?? null,\n solidXGenAiCodeBuilderConfig: (() => {\n const defaultAiConfig: SolidAiConfig = {\n models: {\n default: { providerId: \"\", model: \"\", behavior: { streaming: false, custom: \"\" } },\n fast: { providerId: \"\", model: \"\", behavior: { streaming: false, custom: \"\" } },\n },\n providers: {},\n };\n const raw = solidSettingsData?.data?.solidXGenAiCodeBuilderConfig;\n if (!raw) return defaultAiConfig;\n try {\n const parsed = typeof raw === \"string\" ? JSON.parse(raw) : raw;\n return (parsed && typeof parsed === \"object\" ? parsed : defaultAiConfig) as SolidAiConfig;\n } catch {\n return defaultAiConfig;\n }\n })(),\n // llmProvider: solidSettingsData?.data?.llmProvider ?? null,\n // llModelName: solidSettingsData?.data?.llModelName ?? null,\n // llmProviderApiKey: solidSettingsData?.data?.llmProviderApiKey ?? null,\n // llmProviderBaseURL: solidSettingsData?.data?.llmProviderBaseURL ?? null,\n // llmModelIdentifier: solidSettingsData?.data?.llmModelIdentifier ?? null\n\n\n };\n const formik = useFormik({\n initialValues: initialValues,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n\n const updatedSettingsArray: Array<{ key: string; value: string; type: string }> = [];\n const currentSettings = solidSettingsData?.data || {};\n\n const formData = new FormData();\n\n // Compare changed fields\n Object.entries(values).forEach(([key, value]) => {\n const currentValue = currentSettings[key];\n\n const wasCleared = currentValue != null && currentValue !== \"\" && (value === null || value === \"\");\n const isFile = value instanceof File;\n const normalizedCurrent = currentValue ?? \"\";\n const normalizedValue = value ?? \"\";\n const changed = isFile || wasCleared || normalizedCurrent !== normalizedValue;\n\n if (changed) {\n if (isFile) {\n formData.append(key, value as File);\n updatedSettingsArray.push({\n key,\n value: \"\",\n type: \"system\",\n });\n } else {\n updatedSettingsArray.push({\n key,\n value:\n value === null || value === undefined ? \"\" : (typeof value === \"string\" ? value : JSON.stringify(value)),\n type: \"system\",\n });\n }\n }\n });\n\n if (updatedSettingsArray.length === 0) {\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"No Changes\",\n detail: \"No settings were updated\",\n }),\n );\n return;\n }\n\n // Append settings array to formData\n formData.append(\"settings\", JSON.stringify(updatedSettingsArray));\n\n // Call API\n const response = await bulkUpdateSolidSettings({\n data: formData,\n }).unwrap();\n\n if (response.statusCode === 200) {\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Updated\",\n detail: \"Settings updated\",\n }),\n );\n trigger(\"\");\n }\n } catch (error: any) {\n console.log(\"Error updating settings:\", error);\n dispatch(\n showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.FAILED,\n detail: error?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG,\n }),\n );\n }\n },\n });\n\n const showError = async () => {\n const errors = await formik.validateForm();\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Error\",\n detail: Array.isArray(errorMessages)\n ? errorMessages.join(\", \")\n : errorMessages,\n }),\n );\n }\n };\n useEffect(() => {}, [pathname]);\n\n const positionMap: Record<\"left\" | \"center\" | \"right\", string> = {\n left: \"The form will appear on the left side of the screen, while the banner will be positioned on the right side\",\n center:\n \"The form will be centered in the middle of the screen for balanced alignment\",\n right:\n \"The form will appear on the right side of the screen, and the banner will be positioned on the left side\",\n };\n\n const onAppLogoDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"File too large\",\n detail: \"Maximum file size is 2MB\",\n }),\n );\n return;\n }\n formik.setFieldValue(\"appLogo\", file);\n setAppLogoPreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const onCompanyLogoDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"File too large\",\n detail: \"Maximum file size is 2MB\",\n }),\n );\n return;\n }\n formik.setFieldValue(\"companylogo\", file);\n setCompanyLogoPreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const {\n getRootProps: getAppLogoRootProps,\n getInputProps: getAppLogoInputProps,\n isDragActive: isAppLogoDragActive,\n } = useDropzone({\n accept: {\n \"image/png\": [\".png\"],\n \"image/jpeg\": [\".jpeg\", \".jpg\"],\n \"image/svg+xml\": [\".svg\"],\n \"image/webp\": [\".webp\"],\n },\n multiple: false,\n onDrop: onAppLogoDrop,\n });\n const {\n getRootProps: getCompanyLogoRootProps,\n getInputProps: getCompanyLogoInputProps,\n isDragActive: isCompanyLogoDragActive,\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp'],\n },\n multiple: false,\n onDrop: onCompanyLogoDrop,\n });\n\n const removeAppLogo = () => {\n formik.setFieldValue(\"appLogo\", null);\n if (appLogoPreview) {\n URL.revokeObjectURL(appLogoPreview);\n setAppLogoPreview(null);\n }\n };\n\n const removeCompanyLogo = () => {\n formik.setFieldValue(\"companylogo\", null);\n if (companyLogoPreview) {\n URL.revokeObjectURL(companyLogoPreview);\n setCompanyLogoPreview(null);\n }\n };\n\n const onAuthScreenRightBackgroundImageDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.FILE_LARGE,\n detail: ERROR_MESSAGES.MAX_FILE_SIZE,\n }),\n );\n return;\n }\n formik.setFieldValue(\"authScreenRightBackgroundImage\", file);\n setAuthScreenRightBackgroundImagePreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const onAuthScreenLeftBackgroundImageDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.FILE_LARGE,\n detail: ERROR_MESSAGES.MAX_FILE_SIZE,\n }),\n );\n return;\n }\n formik.setFieldValue(\"authScreenLeftBackgroundImage\", file);\n setAuthScreenLeftBackgroundImagePreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const onAuthScreenCenterBackgroundImageDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.FILE_LARGE,\n detail: ERROR_MESSAGES.MAX_FILE_SIZE,\n }),\n );\n return;\n }\n formik.setFieldValue(\"authScreenCenterBackgroundImage\", file);\n setAuthScreenCenterBackgroundImagePreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const {\n getRootProps: getAuthScreenRightBackgroundImageRootProps,\n getInputProps: getAuthScreenRightBackgroundImageInputProps,\n isDragActive: isAuthScreenRightBackgroundImageDragActive,\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp'],\n },\n multiple: false,\n onDrop: onAuthScreenRightBackgroundImageDrop,\n });\n\n const {\n getRootProps: getAuthScreenLeftBackgroundImageRootProps,\n getInputProps: getAuthScreenLeftBackgroundImageInputProps,\n isDragActive: isAuthScreenLeftBackgroundImageDragActive,\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onAuthScreenLeftBackgroundImageDrop\n });\n\n const {\n getRootProps: getAuthScreenCenterBackgroundImageRootProps,\n getInputProps: getAuthScreenCenterBackgroundImageInputProps,\n isDragActive: isAuthScreenCenterBackgroundImageDragActive\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onAuthScreenCenterBackgroundImageDrop\n });\n\n const removeAuthScreenRightBackgroundImage = () => {\n formik.setFieldValue(\"authScreenRightBackgroundImage\", null);\n if (authScreenRightBackgroundImagePreview) {\n URL.revokeObjectURL(authScreenRightBackgroundImagePreview);\n setAuthScreenRightBackgroundImagePreview(null);\n }\n };\n\n const removeAuthScreenLeftBackgroundImage = () => {\n formik.setFieldValue(\"authScreenLeftBackgroundImage\", null);\n if (authScreenLeftBackgroundImagePreview) {\n URL.revokeObjectURL(authScreenLeftBackgroundImagePreview);\n setAuthScreenLeftBackgroundImagePreview(null);\n }\n };\n\n const removeAuthScreenCenterBackgroundImage = () => {\n formik.setFieldValue(\"authScreenCenterBackgroundImage\", null);\n if (authScreenCenterBackgroundImagePreview) {\n URL.revokeObjectURL(authScreenCenterBackgroundImagePreview);\n setAuthScreenCenterBackgroundImagePreview(null);\n }\n };\n\n const handleAiConfigChange = (newConfig: SolidAiConfig) => {\n formik.setFieldValue(\"solidXGenAiCodeBuilderConfig\", newConfig);\n };\n\n return (\n <div className=\"page-parent-wrapper\">\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\">\n <form onSubmit={formik.handleSubmit}>\n <div className=\"page-header secondary-border-bottom\">\n <div className=\"form-wrapper-title \">Settings</div>\n <div className=\"flex gap-4\">\n {formik.dirty && (\n <SolidButton\n size=\"sm\"\n type=\"submit\"\n loading={formik.isSubmitting}\n onClick={() => showError()}\n >\n Save\n </SolidButton>\n )}\n {/* <CancelButton /> */}\n </div>\n </div>\n <div className=\"px-3 py-3 md:p-4 solid-form-content\">\n {pathname.includes(\"app-settings\") && (\n <>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <p className=\"solid-settings-subheading\">App Logo</p>\n <div>\n <div\n {...getAppLogoRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input {...getAppLogoInputProps()} />\n {/* {isAppLogoDragActive && */}\n <SettingDropzoneActivePlaceholder />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (SolidLogo as any).src || SolidLogo;\n\n let src = appLogoPreview\n ? appLogoPreview\n : formik.values.appLogo\n ? formik.values.appLogo\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage\n src={src}\n className=\"solid-app-logo\"\n />\n );\n })()}\n </div>\n {formik.values.appLogo && (\n <SettingsImageRemoveButton\n onClick={removeAppLogo}\n />\n )}\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <p className=\"solid-settings-subheading\">\n Company Logo\n </p>\n <div>\n <div\n {...getCompanyLogoRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input {...getCompanyLogoInputProps()} />\n {/* {isCompanyLogoDragActive && */}\n <SettingDropzoneActivePlaceholder />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (SolidLogo as any).src || SolidLogo;\n\n let src = companyLogoPreview\n ? companyLogoPreview\n : formik.values.companylogo\n ? formik.values.companylogo\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n\n return (\n <SolidUploadedImage\n src={src}\n className=\"solid-compony-logo\"\n />\n );\n })()}\n </div>\n {formik.values.companylogo && (\n <SettingsImageRemoveButton\n onClick={removeCompanyLogo}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n <p className=\"solid-settings-heading\">App Logo Position</p>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <div className=\"flex\">\n <SolidSegmentedControl\n className=\"solid-settings-segmented\"\n value={formik.values.appLogoPosition}\n options={[\n { value: \"in_form_view\", label: \"In Form View\" },\n { value: \"in_image_view\", label: \"In Image View\" },\n ]}\n onChange={(value) => formik.setFieldValue(\"appLogoPosition\", value)}\n />\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-6\" />\n <p className=\"solid-settings-heading\">Title & Description Details</p>\n <div className='flex flex-wrap -mx-2 -mt-2'>\n <div className='w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2'>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Show Details on Authentication Screen</label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"showAuthContent\"\n checked={formik.values.showAuthContent}\n onChange={(checked) =>\n formik.setFieldValue(\n \"showAuthContent\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">\n App Title\n </label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidInput\n type=\"text\"\n id=\"appTitle\"\n name=\"appTitle\"\n onChange={formik.handleChange}\n value={formik.values.appTitle ?? ''}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2 mt-6\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">\n App Subtitle\n </label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidInput\n type=\"text\"\n id=\"appSubtitle\"\n name=\"appSubtitle\"\n onChange={formik.handleChange}\n value={formik.values.appSubtitle ?? ''}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2 mt-6\">\n <div className=\"flex flex-wrap items-start -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">\n Description\n </label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidTextarea\n rows={3}\n id=\"appDescription\"\n name=\"appDescription\"\n onChange={formik.handleChange}\n value={formik.values.appDescription ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2 mt-6\">\n <div className=\"flex flex-wrap items-start -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Copyright</label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidTextarea\n rows={3}\n id=\"copyright\"\n name=\"copyright\"\n onChange={formik.handleChange}\n value={formik.values.copyright ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-6\" />\n\n <p className=\"solid-settings-heading\">Legal Links</p>\n <div className='flex flex-wrap -mx-2 -mt-2'>\n <div className='w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2'>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">Show Legal Links</label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"showLegalLinks\"\n checked={formik.values.showLegalLinks}\n onChange={(checked) => formik.setFieldValue(\"showLegalLinks\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 py-2 md:py-0\">\n <label className=\"form-field-label\">\n Terms and Conditions Link\n </label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidInput\n type=\"text\"\n id=\"appTnc\"\n name=\"appTnc\"\n onChange={formik.handleChange}\n value={formik.values.appTnc ?? \"\"}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">\n Privacy Policy Link\n </label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidInput\n type=\"text\"\n id=\"appPrivacyPolicy\"\n name=\"appPrivacyPolicy\"\n onChange={formik.handleChange}\n value={formik.values.appPrivacyPolicy ?? \"\"}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-6\" />\n <p className=\"solid-settings-heading\">Theme</p>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[83.333333%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Enable Dark Mode\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"enableDarkMode\"\n checked={formik.values.enableDarkMode}\n onChange={(checked) => formik.setFieldValue(\"enableDarkMode\",checked)}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n )}\n {pathname.includes(\"authentication-settings\") && (\n <>\n <p className=\"solid-settings-heading\">User Authentication</p>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Public Registration\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"allowPublicRegistration\"\n checked={formik.values.allowPublicRegistration}\n onChange={(checked) =>\n formik.setFieldValue(\n \"allowPublicRegistration\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Password Based Authentication\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"passwordBasedAuth\"\n checked={formik.values.passwordBasedAuth}\n onChange={(checked) =>\n formik.setFieldValue(\n \"passwordBasedAuth\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Password Less Authentication\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"passwordLessAuth\"\n checked={formik.values.passwordLessAuth}\n onChange={(checked) =>\n formik.setFieldValue(\n \"passwordLessAuth\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Auto Activate User on Registration{\" \"}\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"activateUserOnRegistration\"\n checked={\n formik.values.activateUserOnRegistration\n }\n onChange={(checked) =>\n formik.setFieldValue(\n \"activateUserOnRegistration\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Allow Login/ Signup with Google{\" \"}\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"iamGoogleOAuthEnabled\"\n checked={formik.values.iamGoogleOAuthEnabled}\n onChange={(checked) =>\n formik.setFieldValue(\n \"iamGoogleOAuthEnabled\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Allow Login/ Signup with Microsoft{\" \"}\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"iamMicrosoftOAuthEnabled\"\n checked={formik.values.iamMicrosoftOAuthEnabled}\n onChange={(checked) =>\n formik.setFieldValue(\n \"iamMicrosoftOAuthEnabled\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Allow Login/ Signup with Facebook{\" \"}\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"iamFacebookOAuthEnabled\"\n checked={formik.values.iamFacebookOAuthEnabled}\n onChange={(checked) =>\n formik.setFieldValue(\n \"iamFacebookOAuthEnabled\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Allow Login/ Signup with Apple{\" \"}\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"iamAppleOAuthEnabled\"\n checked={formik.values.iamAppleOAuthEnabled}\n onChange={(checked) =>\n formik.setFieldValue(\n \"iamAppleOAuthEnabled\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Force Password change on first Login{\" \"}\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"forceChangePasswordOnFirstLogin\"\n checked={\n formik.values.forceChangePasswordOnFirstLogin\n }\n onChange={(checked) =>\n formik.setFieldValue(\n \"forceChangePasswordOnFirstLogin\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n {formik.values.passwordLessAuth === true && (\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full sm:w-full lg:w-[41.666667%] xl:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Password Less Registration Method\n </label>\n </div>\n <div className=\"w-full sm:w-full lg:w-1/2 xl:w-1/2 px-2 pt-2\">\n <SolidSegmentedControl\n className=\"solid-settings-segmented mt-4 lg:mt-0\"\n value={\n formik.values\n .passwordlessRegistrationValidateWhat\n }\n options={[\n { value: \"email\", label: \"Email\" },\n { value: \"mobile\", label: \"Mobile\" },\n ]}\n onChange={(value) =>\n formik.setFieldValue(\n \"passwordlessRegistrationValidateWhat\",\n value,\n )\n }\n />\n </div>\n </div>\n </div>\n )}\n {formik.values.passwordLessAuth === true && (\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full sm:w-full lg:w-[41.666667%] xl:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Password Less Login Method\n </label>\n </div>\n <div className=\"w-full sm:w-full lg:w-1/2 xl:w-1/2 px-2 pt-2\">\n <SolidSegmentedControl\n className=\"solid-settings-segmented mt-4 lg:mt-0\"\n value={\n formik.values.passwordlessLoginValidateWhat\n }\n options={[\n { value: \"email\", label: \"Email\" },\n { value: \"mobile\", label: \"Mobile\" },\n {\n value: \"selectable\",\n label: \"Selectable\",\n },\n ]}\n onChange={(value) =>\n formik.setFieldValue(\n \"passwordlessLoginValidateWhat\",\n value,\n )\n }\n />\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-6\" />\n <p className=\"solid-settings-heading\">\n Authentication Screen Layout\n </p>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <SolidSegmentedControl\n className=\"solid-settings-segmented\"\n value={formik.values.authPagesLayout}\n options={[\n { value: \"left\", label: \"Left\" },\n { value: \"center\", label: \"Center\" },\n { value: \"right\", label: \"Right\" },\n ]}\n onChange={(value) =>\n formik.setFieldValue(\"authPagesLayout\", value)\n }\n />\n <p className=\"mt-4 text-sm font-bold\">\n Note :{\" \"}\n {\n positionMap[\n formik.values.authPagesLayout as\n | \"left\"\n | \"center\"\n | \"right\"\n ]\n }\n </p>\n </div>\n </div>\n {formik.values.authPagesLayout === \"center\" && <></>}\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full md:w-[66.666667%] lg:w-1/2 px-2 pt-2\">\n <p className=\"solid-settings-subheading\">\n {formik.values.authPagesLayout === \"center\"\n ? \"Background\"\n : \"Banner\"}{\" \"}\n Image\n </p>\n {formik.values.authPagesLayout === \"left\" && (\n <div>\n <div\n {...getAuthScreenLeftBackgroundImageRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input\n {...getAuthScreenLeftBackgroundImageInputProps()}\n />\n {/* {isAuthScreenLeftBackgroundImageDragActive && */}\n <SettingDropzoneActivePlaceholder\n note={\n \"Recommended: 724×724px | Aspect ratio: 1:1\"\n }\n />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (AuthScreenLeftBackgroundImage as any)\n .src || AuthScreenLeftBackgroundImage;\n\n let src = authScreenLeftBackgroundImagePreview\n ? authScreenLeftBackgroundImagePreview\n : formik.values\n .authScreenLeftBackgroundImage\n ? formik.values\n .authScreenLeftBackgroundImage\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (\n !isBlobOrAbsolute &&\n !src.startsWith(\"/\")\n ) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage\n src={src}\n height={400}\n width={400}\n maxHeight={400}\n />\n );\n })()}\n </div>\n {formik.values.authScreenLeftBackgroundImage && (\n <SettingsImageRemoveButton\n onClick={removeAuthScreenLeftBackgroundImage}\n />\n )}\n </div>\n )}\n {formik.values.authPagesLayout === \"right\" && (\n <div>\n <div\n {...getAuthScreenRightBackgroundImageRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input\n {...getAuthScreenRightBackgroundImageInputProps()}\n />\n {/* {isAuthScreenRightBackgroundImageDragActive && */}\n <SettingDropzoneActivePlaceholder\n note={\n \"Recommended: 724×724px | Aspect ratio: 1:1\"\n }\n />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (AuthScreenRightBackgroundImage as any)\n .src || AuthScreenRightBackgroundImage;\n\n let src =\n authScreenRightBackgroundImagePreview\n ? authScreenRightBackgroundImagePreview\n : formik.values\n .authScreenRightBackgroundImage\n ? formik.values\n .authScreenRightBackgroundImage\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (\n !isBlobOrAbsolute &&\n !src.startsWith(\"/\")\n ) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage\n src={src}\n height={400}\n width={400}\n maxHeight={400}\n />\n );\n })()}\n </div>\n {formik.values.authScreenRightBackgroundImage && (\n <SettingsImageRemoveButton\n onClick={removeAuthScreenRightBackgroundImage}\n />\n )}\n </div>\n )}\n {formik.values.authPagesLayout === \"center\" && (\n <div>\n <div\n {...getAuthScreenCenterBackgroundImageRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input\n {...getAuthScreenCenterBackgroundImageInputProps()}\n />\n <SettingDropzoneActivePlaceholder\n note={\n \"Recommended: 1440px × 724px | Aspect ratio: 2:1\"\n }\n />\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (AuthScreenCenterBackgroundImage as any)\n .src || AuthScreenCenterBackgroundImage;\n\n let src =\n authScreenCenterBackgroundImagePreview\n ? authScreenCenterBackgroundImagePreview\n : formik.values\n .authScreenCenterBackgroundImage\n ? formik.values\n .authScreenCenterBackgroundImage\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage src={src} height={300} width={600} maxHeight={300} />\n );\n })()}\n </div>\n {formik.values.authScreenCenterBackgroundImage && (\n <SettingsImageRemoveButton onClick={removeAuthScreenCenterBackgroundImage} />\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-6\" />\n </>\n )}\n\n {pathname.includes(\"misc-settings\") && (\n <>\n {/* \n <p className='font-bold' style={{ fontSize: 16, color: 'var(--solid-setting-title)' }}>Misc Details</p>\n <div className='flex flex-wrap -mx-2 -mt-2'>\n <div className='w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2'>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full md:w-1/2 px-2 pt-2 pb-4 md:pb-0\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">Use queue for sending emails</label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <InputSwitch\n name=\"shouldQueueEmails\"\n checked={formik.values.shouldQueueEmails}\n onChange={(e) => formik.setFieldValue(\"shouldQueueEmails\", e.value)}\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">Use queue for sending SMS</label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <InputSwitch\n name=\"shouldQueueSms\"\n checked={formik.values.shouldQueueSms}\n onChange={(e) => formik.setFieldValue(\"shouldQueueSms\", e.value)}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Divider />\n */}\n <p className=\"solid-settings-heading\">Contact Support</p>\n <div className='flex flex-wrap -mx-2 -mt-2'>\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <div className='flex flex-wrap -mx-2 -mt-2'>\n <div className=\"w-full md:w-1/2 px-2 pt-2 pb-4 md:pb-0\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Contact Support Email</label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidInput\n type=\"text\"\n id=\"contactSupportEmail\"\n name=\"contactSupportEmail\"\n onChange={formik.handleChange}\n value={formik.values.contactSupportEmail ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Display Name</label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidInput\n type=\"text\"\n id=\"contactSupportDisplayName\"\n name=\"contactSupportDisplayName\"\n onChange={formik.handleChange}\n value={formik.values.contactSupportDisplayName ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n )}\n {pathname.includes(\"ai-settings\") &&\n <AiSettingsSection\n aiConfig={formik.values.solidXGenAiCodeBuilderConfig as SolidAiConfig}\n onAiConfigChange={handleAiConfigChange}\n />\n }\n {pathname.includes(\"api-keys\") && session?.user?.id &&\n <ApiKeysTab\n userId={session.user.id}\n canCreate={session?.user?.isAllowedToGenerateApiKeys ?? false}\n />\n }\n </div>\n </form>\n </div>\n </div>\n </div>\n )\n}\n\ninterface AiSettingsSectionProps {\n aiConfig: SolidAiConfig;\n onAiConfigChange: (config: SolidAiConfig) => void;\n}\n\nconst DEFAULT_BEHAVIOR: ModelBehavior = { streaming: false, custom: \"\" };\nconst DEFAULT_MODEL_ENTRY: ModelEntry = { providerId: \"\", model: \"\", behavior: DEFAULT_BEHAVIOR };\n\nconst AiSettingsSection = ({ aiConfig, onAiConfigChange }: AiSettingsSectionProps) => {\n const [activeTab, setActiveTab] = useState<\"providers\" | \"default\" | \"fast\">(\"providers\");\n const [showAddProvider, setShowAddProvider] = useState(false);\n\n const providers = ensureBuiltInProviders(aiConfig.providers ?? {});\n\n const tabItems = [\n {\n value: \"providers\" as const,\n label: \"Providers\",\n content: (\n <ProvidersTab\n providers={providers}\n onProvidersChange={(newProviders) => {\n onAiConfigChange({ ...aiConfig, providers: newProviders });\n }}\n showAddModal={showAddProvider}\n onAddModalClose={() => setShowAddProvider(false)}\n />\n ),\n },\n {\n value: \"default\" as const,\n label: \"Intelligent Model\",\n content: (\n <ModelConfigTab\n modelEntry={aiConfig.models?.default ?? DEFAULT_MODEL_ENTRY}\n providers={providers}\n onModelEntryChange={(entry) => {\n onAiConfigChange({ ...aiConfig, models: { ...aiConfig.models, default: entry } });\n }}\n />\n ),\n },\n {\n value: \"fast\" as const,\n label: \"Fast Model\",\n content: (\n <ModelConfigTab\n modelEntry={aiConfig.models?.fast ?? DEFAULT_MODEL_ENTRY}\n providers={providers}\n onModelEntryChange={(entry) => {\n onAiConfigChange({ ...aiConfig, models: { ...aiConfig.models, fast: entry } });\n }}\n />\n ),\n },\n ];\n\n return (\n <div>\n <p className=\"solid-settings-heading\" style={{ marginBottom: \"1rem\" }}>\n AI Model Configuration\n </p>\n <SolidTabGroup\n tabs={tabItems}\n value={activeTab}\n onValueChange={(value) => setActiveTab(value as \"providers\" | \"default\" | \"fast\")}\n tabPosition=\"left\"\n extra={\n activeTab === \"providers\" ? (\n <SolidButton size=\"sm\" onClick={() => setShowAddProvider(true)}>\n Add\n </SolidButton>\n ) : undefined\n }\n />\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"GeneralSettings.js","sourceRoot":"","sources":["../../../src/components/common/GeneralSettings.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useFormik } from 'formik';\nimport { useCallback, useEffect, useState } from 'react'\nimport { CancelButton } from './CancelButton';\nimport { ApiKeysTab } from '../core/users/ApiKeysTab';\nimport { useSession } from '../../hooks/useSession';\nimport { SolidButton, SolidDivider, SolidInput, SolidSegmentedControl, SolidSwitch, SolidTabGroup, SolidTextarea } from '../shad-cn-ui';\nimport { usePathname } from \"../../hooks/usePathname\";\nimport SolidLogo from '../../resources/images/SolidXLogo.svg'\nimport AuthScreenRightBackgroundImage from '../../resources/images/auth/solid-left-layout-bg.png';\nimport AuthScreenLeftBackgroundImage from '../../resources/images/auth/solid-right-layout-bg.png';\nimport AuthScreenCenterBackgroundImage from '../../resources/images/auth/solid-login-light.png';\nimport { useDropzone } from 'react-dropzone';\nimport { SettingDropzoneActivePlaceholder } from './SolidSettings/SettingDropzoneActivePlaceholder';\nimport { SolidUploadedImage } from './SolidSettings/SolidUploadedImage';\nimport { SettingsImageRemoveButton } from './SolidSettings/SettingsImageRemoveButton';\nimport { ModelConfigTab, ProvidersTab, ModelBehavior, ModelEntry, SolidAiConfig, ensureBuiltInProviders } from './SolidSettings/LlmSettings/AiModelConfigTab';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ERROR_MESSAGES } from '../../constants/error-messages';\nimport { useBulkUpdateSolidSettingsMutation, useLazyGetSolidSettingsQuery } from '../../redux/api/solidSettingsApi';\nimport { env } from \"../../adapters/env\";\nimport { showToast } from \"../../redux/features/toastSlice\";\n\nexport const GeneralSettings = () => {\n const { data: session } = useSession();\n const [appLogoPreview, setAppLogoPreview] = useState<string | null>(null);\n const [companyLogoPreview, setCompanyLogoPreview] = useState<string | null>(null);\n const [authScreenRightBackgroundImagePreview, setAuthScreenRightBackgroundImagePreview] = useState<string | null>(null);\n const [authScreenLeftBackgroundImagePreview, setAuthScreenLeftBackgroundImagePreview] = useState<string | null>(null);\n const [authScreenCenterBackgroundImagePreview, setAuthScreenCenterBackgroundImagePreview] = useState<string | null>(null);\n const dispatch = useDispatch()\n\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [trigger])\n const pathname = usePathname();\n const [bulkUpdateSolidSettings] = useBulkUpdateSolidSettingsMutation();\n const initialValues = {\n appLogo: solidSettingsData?.data?.appLogo ?? null,\n companylogo: solidSettingsData?.data?.companylogo ?? null,\n passwordlessRegistrationValidateWhat: solidSettingsData?.data?.passwordlessRegistrationValidateWhat ?? \"email\",\n passwordlessLoginValidateWhat: solidSettingsData?.data?.passwordlessLoginValidateWhat ?? \"email\",\n allowPublicRegistration: solidSettingsData?.data?.allowPublicRegistration ?? false,\n passwordBasedAuth: solidSettingsData?.data?.passwordBasedAuth ?? false,\n passwordLessAuth: solidSettingsData?.data?.passwordLessAuth ?? false,\n activateUserOnRegistration: solidSettingsData?.data?.activateUserOnRegistration ?? false,\n iamGoogleOAuthEnabled: solidSettingsData?.data?.iamGoogleOAuthEnabled ?? false,\n iamMicrosoftOAuthEnabled: solidSettingsData?.data?.iamMicrosoftOAuthEnabled ?? false,\n iamMicrosoftActiveDirectoryOAuthEnabled: solidSettingsData?.data?.iamMicrosoftActiveDirectoryOAuthEnabled ?? false,\n iamFacebookOAuthEnabled: solidSettingsData?.data?.iamFacebookOAuthEnabled ?? false,\n iamAppleOAuthEnabled: solidSettingsData?.data?.iamAppleOAuthEnabled ?? false,\n // shouldQueueEmails: solidSettingsData?.data?.shouldQueueEmails ?? false,\n // shouldQueueSms: solidSettingsData?.data?.shouldQueueSms ?? false,\n authPagesLayout: solidSettingsData?.data?.authPagesLayout ?? \"center\",\n defaultRole: solidSettingsData?.data?.defaultRole ?? \"Admin\",\n appLogoPosition: solidSettingsData?.data?.appLogoPosition ?? \"in_form_view\",\n showAuthContent: solidSettingsData?.data?.showAuthContent ?? false,\n appTitle: solidSettingsData?.data?.appTitle ?? \"SolidX\",\n appSubtitle: solidSettingsData?.data?.appSubtitle ?? \"Welcome To\",\n appDescription: solidSettingsData?.data?.appDescription ?? \"appDescription\",\n showLegalLinks: solidSettingsData?.data?.showLegalLinks ?? false,\n appTnc: solidSettingsData?.data?.appTnc ?? null,\n appPrivacyPolicy: solidSettingsData?.data?.appPrivacyPolicy ?? null,\n enableDarkMode: solidSettingsData?.data?.enableDarkMode ?? false,\n copyright: solidSettingsData?.data?.copyright ?? null,\n forceChangePasswordOnFirstLogin: solidSettingsData?.data?.forceChangePasswordOnFirstLogin ?? false,\n contactSupportEmail: solidSettingsData?.data?.contactSupportEmail ?? null,\n contactSupportDisplayName: solidSettingsData?.data?.contactSupportDisplayName ?? null,\n contactSupportIcon: solidSettingsData?.data?.contactSupportIcon ?? null,\n authScreenRightBackgroundImage: solidSettingsData?.data?.authScreenRightBackgroundImage ?? null,\n authScreenLeftBackgroundImage: solidSettingsData?.data?.authScreenLeftBackgroundImage ?? null,\n authScreenCenterBackgroundImage: solidSettingsData?.data?.authScreenCenterBackgroundImage ?? null,\n solidXGenAiCodeBuilderConfig: (() => {\n const defaultAiConfig: SolidAiConfig = {\n models: {\n default: { providerId: \"\", model: \"\", behavior: { streaming: false, custom: \"\" } },\n fast: { providerId: \"\", model: \"\", behavior: { streaming: false, custom: \"\" } },\n },\n providers: {},\n };\n const raw = solidSettingsData?.data?.solidXGenAiCodeBuilderConfig;\n if (!raw) return defaultAiConfig;\n try {\n const parsed = typeof raw === \"string\" ? JSON.parse(raw) : raw;\n return (parsed && typeof parsed === \"object\" ? parsed : defaultAiConfig) as SolidAiConfig;\n } catch {\n return defaultAiConfig;\n }\n })(),\n // llmProvider: solidSettingsData?.data?.llmProvider ?? null,\n // llModelName: solidSettingsData?.data?.llModelName ?? null,\n // llmProviderApiKey: solidSettingsData?.data?.llmProviderApiKey ?? null,\n // llmProviderBaseURL: solidSettingsData?.data?.llmProviderBaseURL ?? null,\n // llmModelIdentifier: solidSettingsData?.data?.llmModelIdentifier ?? null\n\n\n };\n const formik = useFormik({\n initialValues: initialValues,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n\n const updatedSettingsArray: Array<{ key: string; value: string; type: string }> = [];\n const currentSettings = solidSettingsData?.data || {};\n\n const formData = new FormData();\n\n // Compare changed fields\n Object.entries(values).forEach(([key, value]) => {\n const currentValue = currentSettings[key];\n\n const wasCleared = currentValue != null && currentValue !== \"\" && (value === null || value === \"\");\n const isFile = value instanceof File;\n const normalizedCurrent = currentValue ?? \"\";\n const normalizedValue = value ?? \"\";\n const changed = isFile || wasCleared || normalizedCurrent !== normalizedValue;\n\n if (changed) {\n if (isFile) {\n formData.append(key, value as File);\n updatedSettingsArray.push({\n key,\n value: \"\",\n type: \"system\",\n });\n } else {\n updatedSettingsArray.push({\n key,\n value:\n value === null || value === undefined ? \"\" : (typeof value === \"string\" ? value : JSON.stringify(value)),\n type: \"system\",\n });\n }\n }\n });\n\n if (updatedSettingsArray.length === 0) {\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"No Changes\",\n detail: \"No settings were updated\",\n }),\n );\n return;\n }\n\n // Append settings array to formData\n formData.append(\"settings\", JSON.stringify(updatedSettingsArray));\n\n // Call API\n const response = await bulkUpdateSolidSettings({\n data: formData,\n }).unwrap();\n\n if (response.statusCode === 200) {\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Updated\",\n detail: \"Settings updated\",\n }),\n );\n trigger(\"\");\n }\n } catch (error: any) {\n console.log(\"Error updating settings:\", error);\n dispatch(\n showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.FAILED,\n detail: error?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG,\n }),\n );\n }\n },\n });\n\n const showError = async () => {\n const errors = await formik.validateForm();\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Error\",\n detail: Array.isArray(errorMessages)\n ? errorMessages.join(\", \")\n : errorMessages,\n }),\n );\n }\n };\n useEffect(() => {}, [pathname]);\n\n const positionMap: Record<\"left\" | \"center\" | \"right\", string> = {\n left: \"The form will appear on the left side of the screen, while the banner will be positioned on the right side\",\n center:\n \"The form will be centered in the middle of the screen for balanced alignment\",\n right:\n \"The form will appear on the right side of the screen, and the banner will be positioned on the left side\",\n };\n\n const onAppLogoDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"File too large\",\n detail: \"Maximum file size is 2MB\",\n }),\n );\n return;\n }\n formik.setFieldValue(\"appLogo\", file);\n setAppLogoPreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const onCompanyLogoDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"File too large\",\n detail: \"Maximum file size is 2MB\",\n }),\n );\n return;\n }\n formik.setFieldValue(\"companylogo\", file);\n setCompanyLogoPreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const {\n getRootProps: getAppLogoRootProps,\n getInputProps: getAppLogoInputProps,\n isDragActive: isAppLogoDragActive,\n } = useDropzone({\n accept: {\n \"image/png\": [\".png\"],\n \"image/jpeg\": [\".jpeg\", \".jpg\"],\n \"image/svg+xml\": [\".svg\"],\n \"image/webp\": [\".webp\"],\n },\n multiple: false,\n onDrop: onAppLogoDrop,\n });\n const {\n getRootProps: getCompanyLogoRootProps,\n getInputProps: getCompanyLogoInputProps,\n isDragActive: isCompanyLogoDragActive,\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp'],\n },\n multiple: false,\n onDrop: onCompanyLogoDrop,\n });\n\n const removeAppLogo = () => {\n formik.setFieldValue(\"appLogo\", null);\n if (appLogoPreview) {\n URL.revokeObjectURL(appLogoPreview);\n setAppLogoPreview(null);\n }\n };\n\n const removeCompanyLogo = () => {\n formik.setFieldValue(\"companylogo\", null);\n if (companyLogoPreview) {\n URL.revokeObjectURL(companyLogoPreview);\n setCompanyLogoPreview(null);\n }\n };\n\n const onAuthScreenRightBackgroundImageDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.FILE_LARGE,\n detail: ERROR_MESSAGES.MAX_FILE_SIZE,\n }),\n );\n return;\n }\n formik.setFieldValue(\"authScreenRightBackgroundImage\", file);\n setAuthScreenRightBackgroundImagePreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const onAuthScreenLeftBackgroundImageDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.FILE_LARGE,\n detail: ERROR_MESSAGES.MAX_FILE_SIZE,\n }),\n );\n return;\n }\n formik.setFieldValue(\"authScreenLeftBackgroundImage\", file);\n setAuthScreenLeftBackgroundImagePreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const onAuthScreenCenterBackgroundImageDrop = useCallback(\n (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (file) {\n if (file.size > 2 * 1024 * 1024) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: ERROR_MESSAGES.FILE_LARGE,\n detail: ERROR_MESSAGES.MAX_FILE_SIZE,\n }),\n );\n return;\n }\n formik.setFieldValue(\"authScreenCenterBackgroundImage\", file);\n setAuthScreenCenterBackgroundImagePreview(URL.createObjectURL(file));\n }\n },\n [formik],\n );\n\n const {\n getRootProps: getAuthScreenRightBackgroundImageRootProps,\n getInputProps: getAuthScreenRightBackgroundImageInputProps,\n isDragActive: isAuthScreenRightBackgroundImageDragActive,\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp'],\n },\n multiple: false,\n onDrop: onAuthScreenRightBackgroundImageDrop,\n });\n\n const {\n getRootProps: getAuthScreenLeftBackgroundImageRootProps,\n getInputProps: getAuthScreenLeftBackgroundImageInputProps,\n isDragActive: isAuthScreenLeftBackgroundImageDragActive,\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onAuthScreenLeftBackgroundImageDrop\n });\n\n const {\n getRootProps: getAuthScreenCenterBackgroundImageRootProps,\n getInputProps: getAuthScreenCenterBackgroundImageInputProps,\n isDragActive: isAuthScreenCenterBackgroundImageDragActive\n } = useDropzone({\n accept: {\n 'image/png': ['.png'],\n 'image/jpeg': ['.jpeg', '.jpg'],\n 'image/svg+xml': ['.svg'],\n 'image/webp': ['.webp']\n },\n multiple: false,\n onDrop: onAuthScreenCenterBackgroundImageDrop\n });\n\n const removeAuthScreenRightBackgroundImage = () => {\n formik.setFieldValue(\"authScreenRightBackgroundImage\", null);\n if (authScreenRightBackgroundImagePreview) {\n URL.revokeObjectURL(authScreenRightBackgroundImagePreview);\n setAuthScreenRightBackgroundImagePreview(null);\n }\n };\n\n const removeAuthScreenLeftBackgroundImage = () => {\n formik.setFieldValue(\"authScreenLeftBackgroundImage\", null);\n if (authScreenLeftBackgroundImagePreview) {\n URL.revokeObjectURL(authScreenLeftBackgroundImagePreview);\n setAuthScreenLeftBackgroundImagePreview(null);\n }\n };\n\n const removeAuthScreenCenterBackgroundImage = () => {\n formik.setFieldValue(\"authScreenCenterBackgroundImage\", null);\n if (authScreenCenterBackgroundImagePreview) {\n URL.revokeObjectURL(authScreenCenterBackgroundImagePreview);\n setAuthScreenCenterBackgroundImagePreview(null);\n }\n };\n\n const handleAiConfigChange = (newConfig: SolidAiConfig) => {\n formik.setFieldValue(\"solidXGenAiCodeBuilderConfig\", newConfig);\n };\n\n return (\n <div className=\"page-parent-wrapper\">\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\">\n <form onSubmit={formik.handleSubmit}>\n <div className=\"page-header secondary-border-bottom\">\n <div className=\"form-wrapper-title \">Settings</div>\n <div className=\"flex gap-4\">\n {formik.dirty && (\n <SolidButton\n size=\"sm\"\n type=\"submit\"\n loading={formik.isSubmitting}\n onClick={() => showError()}\n >\n Save\n </SolidButton>\n )}\n {/* <CancelButton /> */}\n </div>\n </div>\n <div className=\"px-3 py-3 md:p-4 solid-form-content\">\n {pathname.includes(\"app-settings\") && (\n <>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <p className=\"solid-settings-subheading\">App Logo</p>\n <div>\n <div\n {...getAppLogoRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input {...getAppLogoInputProps()} />\n {/* {isAppLogoDragActive && */}\n <SettingDropzoneActivePlaceholder />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (SolidLogo as any).src || SolidLogo;\n\n let src = appLogoPreview\n ? appLogoPreview\n : formik.values.appLogo\n ? formik.values.appLogo\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage\n src={src}\n className=\"solid-app-logo\"\n />\n );\n })()}\n </div>\n {formik.values.appLogo && (\n <SettingsImageRemoveButton\n onClick={removeAppLogo}\n />\n )}\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <p className=\"solid-settings-subheading\">\n Company Logo\n </p>\n <div>\n <div\n {...getCompanyLogoRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input {...getCompanyLogoInputProps()} />\n {/* {isCompanyLogoDragActive && */}\n <SettingDropzoneActivePlaceholder />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (SolidLogo as any).src || SolidLogo;\n\n let src = companyLogoPreview\n ? companyLogoPreview\n : formik.values.companylogo\n ? formik.values.companylogo\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n\n return (\n <SolidUploadedImage\n src={src}\n className=\"solid-compony-logo\"\n />\n );\n })()}\n </div>\n {formik.values.companylogo && (\n <SettingsImageRemoveButton\n onClick={removeCompanyLogo}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n <p className=\"solid-settings-heading\">App Logo Position</p>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <div className=\"flex\">\n <SolidSegmentedControl\n className=\"solid-settings-segmented\"\n value={formik.values.appLogoPosition}\n options={[\n { value: \"in_form_view\", label: \"In Form View\" },\n { value: \"in_image_view\", label: \"In Image View\" },\n ]}\n onChange={(value) => formik.setFieldValue(\"appLogoPosition\", value)}\n />\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-6\" />\n <p className=\"solid-settings-heading\">Title & Description Details</p>\n <div className='flex flex-wrap -mx-2 -mt-2'>\n <div className='w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2'>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Show Details on Authentication Screen</label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"showAuthContent\"\n checked={formik.values.showAuthContent}\n onChange={(checked) =>\n formik.setFieldValue(\n \"showAuthContent\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">\n App Title\n </label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidInput\n type=\"text\"\n id=\"appTitle\"\n name=\"appTitle\"\n onChange={formik.handleChange}\n value={formik.values.appTitle ?? ''}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2 mt-6\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">\n App Subtitle\n </label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidInput\n type=\"text\"\n id=\"appSubtitle\"\n name=\"appSubtitle\"\n onChange={formik.handleChange}\n value={formik.values.appSubtitle ?? ''}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2 mt-6\">\n <div className=\"flex flex-wrap items-start -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">\n Description\n </label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidTextarea\n rows={3}\n id=\"appDescription\"\n name=\"appDescription\"\n onChange={formik.handleChange}\n value={formik.values.appDescription ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2 mt-6\">\n <div className=\"flex flex-wrap items-start -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Copyright</label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidTextarea\n rows={3}\n id=\"copyright\"\n name=\"copyright\"\n onChange={formik.handleChange}\n value={formik.values.copyright ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-6\" />\n\n <p className=\"solid-settings-heading\">Legal Links</p>\n <div className='flex flex-wrap -mx-2 -mt-2'>\n <div className='w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2'>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">Show Legal Links</label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"showLegalLinks\"\n checked={formik.values.showLegalLinks}\n onChange={(checked) => formik.setFieldValue(\"showLegalLinks\", checked)}\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 py-2 md:py-0\">\n <label className=\"form-field-label\">\n Terms and Conditions Link\n </label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidInput\n type=\"text\"\n id=\"appTnc\"\n name=\"appTnc\"\n onChange={formik.handleChange}\n value={formik.values.appTnc ?? \"\"}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">\n Privacy Policy Link\n </label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidInput\n type=\"text\"\n id=\"appPrivacyPolicy\"\n name=\"appPrivacyPolicy\"\n onChange={formik.handleChange}\n value={formik.values.appPrivacyPolicy ?? \"\"}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-6\" />\n <p className=\"solid-settings-heading\">Theme</p>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[83.333333%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Enable Dark Mode\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"enableDarkMode\"\n checked={formik.values.enableDarkMode}\n onChange={(checked) => formik.setFieldValue(\"enableDarkMode\",checked)}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n )}\n {pathname.includes(\"authentication-settings\") && (\n <>\n <p className=\"solid-settings-heading\">User Authentication</p>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Public Registration\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"allowPublicRegistration\"\n checked={formik.values.allowPublicRegistration}\n onChange={(checked) =>\n formik.setFieldValue(\n \"allowPublicRegistration\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Password Based Authentication\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"passwordBasedAuth\"\n checked={formik.values.passwordBasedAuth}\n onChange={(checked) =>\n formik.setFieldValue(\n \"passwordBasedAuth\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Password Less Authentication\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"passwordLessAuth\"\n checked={formik.values.passwordLessAuth}\n onChange={(checked) =>\n formik.setFieldValue(\n \"passwordLessAuth\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Auto Activate User on Registration{\" \"}\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"activateUserOnRegistration\"\n checked={\n formik.values.activateUserOnRegistration\n }\n onChange={(checked) =>\n formik.setFieldValue(\n \"activateUserOnRegistration\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Allow Login/ Signup with Google{\" \"}\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"iamGoogleOAuthEnabled\"\n checked={formik.values.iamGoogleOAuthEnabled}\n onChange={(checked) =>\n formik.setFieldValue(\n \"iamGoogleOAuthEnabled\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Allow Login/ Signup with Microsoft{\" \"}\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"iamMicrosoftOAuthEnabled\"\n checked={formik.values.iamMicrosoftOAuthEnabled}\n onChange={(checked) =>\n formik.setFieldValue(\n \"iamMicrosoftOAuthEnabled\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Allow Login/ Signup with Microsoft Active Directory{\" \"}\n </label>\n </div>\n <div className=\"col-2 sm:col-3 lg:col-7\">\n <SolidSwitch\n name=\"iamMicrosoftActiveDirectoryOAuthEnabled\"\n checked={formik.values.iamMicrosoftActiveDirectoryOAuthEnabled}\n onChange={(checked) =>\n formik.setFieldValue(\n \"iamMicrosoftActiveDirectoryOAuthEnabled\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"col-12 mt-3\">\n <div className=\"formgrid grid align-items-center\">\n <div className=\"col-10 sm:col-9 lg:col-5\">\n <label className=\"form-field-label\">\n Allow Login/ Signup with Facebook{\" \"}\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"iamFacebookOAuthEnabled\"\n checked={formik.values.iamFacebookOAuthEnabled}\n onChange={(checked) =>\n formik.setFieldValue(\n \"iamFacebookOAuthEnabled\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Allow Login/ Signup with Apple{\" \"}\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"iamAppleOAuthEnabled\"\n checked={formik.values.iamAppleOAuthEnabled}\n onChange={(checked) =>\n formik.setFieldValue(\n \"iamAppleOAuthEnabled\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Force Password change on first Login{\" \"}\n </label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <SolidSwitch\n name=\"forceChangePasswordOnFirstLogin\"\n checked={\n formik.values.forceChangePasswordOnFirstLogin\n }\n onChange={(checked) =>\n formik.setFieldValue(\n \"forceChangePasswordOnFirstLogin\",\n checked,\n )\n }\n />\n </div>\n </div>\n </div>\n {formik.values.passwordLessAuth === true && (\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full sm:w-full lg:w-[41.666667%] xl:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Password Less Registration Method\n </label>\n </div>\n <div className=\"w-full sm:w-full lg:w-1/2 xl:w-1/2 px-2 pt-2\">\n <SolidSegmentedControl\n className=\"solid-settings-segmented mt-4 lg:mt-0\"\n value={\n formik.values\n .passwordlessRegistrationValidateWhat\n }\n options={[\n { value: \"email\", label: \"Email\" },\n { value: \"mobile\", label: \"Mobile\" },\n ]}\n onChange={(value) =>\n formik.setFieldValue(\n \"passwordlessRegistrationValidateWhat\",\n value,\n )\n }\n />\n </div>\n </div>\n </div>\n )}\n {formik.values.passwordLessAuth === true && (\n <div className=\"w-full px-2 pt-2 mt-4\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full sm:w-full lg:w-[41.666667%] xl:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">\n Password Less Login Method\n </label>\n </div>\n <div className=\"w-full sm:w-full lg:w-1/2 xl:w-1/2 px-2 pt-2\">\n <SolidSegmentedControl\n className=\"solid-settings-segmented mt-4 lg:mt-0\"\n value={\n formik.values.passwordlessLoginValidateWhat\n }\n options={[\n { value: \"email\", label: \"Email\" },\n { value: \"mobile\", label: \"Mobile\" },\n {\n value: \"selectable\",\n label: \"Selectable\",\n },\n ]}\n onChange={(value) =>\n formik.setFieldValue(\n \"passwordlessLoginValidateWhat\",\n value,\n )\n }\n />\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-6\" />\n <p className=\"solid-settings-heading\">\n Authentication Screen Layout\n </p>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <SolidSegmentedControl\n className=\"solid-settings-segmented\"\n value={formik.values.authPagesLayout}\n options={[\n { value: \"left\", label: \"Left\" },\n { value: \"center\", label: \"Center\" },\n { value: \"right\", label: \"Right\" },\n ]}\n onChange={(value) =>\n formik.setFieldValue(\"authPagesLayout\", value)\n }\n />\n <p className=\"mt-4 text-sm font-bold\">\n Note :{\" \"}\n {\n positionMap[\n formik.values.authPagesLayout as\n | \"left\"\n | \"center\"\n | \"right\"\n ]\n }\n </p>\n </div>\n </div>\n {formik.values.authPagesLayout === \"center\" && <></>}\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full md:w-[66.666667%] lg:w-1/2 px-2 pt-2\">\n <p className=\"solid-settings-subheading\">\n {formik.values.authPagesLayout === \"center\"\n ? \"Background\"\n : \"Banner\"}{\" \"}\n Image\n </p>\n {formik.values.authPagesLayout === \"left\" && (\n <div>\n <div\n {...getAuthScreenLeftBackgroundImageRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input\n {...getAuthScreenLeftBackgroundImageInputProps()}\n />\n {/* {isAuthScreenLeftBackgroundImageDragActive && */}\n <SettingDropzoneActivePlaceholder\n note={\n \"Recommended: 724×724px | Aspect ratio: 1:1\"\n }\n />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (AuthScreenLeftBackgroundImage as any)\n .src || AuthScreenLeftBackgroundImage;\n\n let src = authScreenLeftBackgroundImagePreview\n ? authScreenLeftBackgroundImagePreview\n : formik.values\n .authScreenLeftBackgroundImage\n ? formik.values\n .authScreenLeftBackgroundImage\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (\n !isBlobOrAbsolute &&\n !src.startsWith(\"/\")\n ) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage\n src={src}\n height={400}\n width={400}\n maxHeight={400}\n />\n );\n })()}\n </div>\n {formik.values.authScreenLeftBackgroundImage && (\n <SettingsImageRemoveButton\n onClick={removeAuthScreenLeftBackgroundImage}\n />\n )}\n </div>\n )}\n {formik.values.authPagesLayout === \"right\" && (\n <div>\n <div\n {...getAuthScreenRightBackgroundImageRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input\n {...getAuthScreenRightBackgroundImageInputProps()}\n />\n {/* {isAuthScreenRightBackgroundImageDragActive && */}\n <SettingDropzoneActivePlaceholder\n note={\n \"Recommended: 724×724px | Aspect ratio: 1:1\"\n }\n />\n {/* } */}\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (AuthScreenRightBackgroundImage as any)\n .src || AuthScreenRightBackgroundImage;\n\n let src =\n authScreenRightBackgroundImagePreview\n ? authScreenRightBackgroundImagePreview\n : formik.values\n .authScreenRightBackgroundImage\n ? formik.values\n .authScreenRightBackgroundImage\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (\n !isBlobOrAbsolute &&\n !src.startsWith(\"/\")\n ) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage\n src={src}\n height={400}\n width={400}\n maxHeight={400}\n />\n );\n })()}\n </div>\n {formik.values.authScreenRightBackgroundImage && (\n <SettingsImageRemoveButton\n onClick={removeAuthScreenRightBackgroundImage}\n />\n )}\n </div>\n )}\n {formik.values.authPagesLayout === \"center\" && (\n <div>\n <div\n {...getAuthScreenCenterBackgroundImageRootProps()}\n className=\"solid-dropzone-wrapper\"\n style={{ borderRadius: 8 }}\n >\n <input\n {...getAuthScreenCenterBackgroundImageInputProps()}\n />\n <SettingDropzoneActivePlaceholder\n note={\n \"Recommended: 1440px × 724px | Aspect ratio: 2:1\"\n }\n />\n </div>\n <div className=\"mt-2\">\n {(() => {\n const logoSrc =\n (AuthScreenCenterBackgroundImage as any)\n .src || AuthScreenCenterBackgroundImage;\n\n let src =\n authScreenCenterBackgroundImagePreview\n ? authScreenCenterBackgroundImagePreview\n : formik.values\n .authScreenCenterBackgroundImage\n ? formik.values\n .authScreenCenterBackgroundImage\n : logoSrc;\n\n const isBlobOrAbsolute =\n src?.startsWith(\"blob:\") ||\n src?.startsWith(\"http\");\n\n if (!isBlobOrAbsolute && !src.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n return (\n <SolidUploadedImage src={src} height={300} width={600} maxHeight={300} />\n );\n })()}\n </div>\n {formik.values.authScreenCenterBackgroundImage && (\n <SettingsImageRemoveButton onClick={removeAuthScreenCenterBackgroundImage} />\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n <SolidDivider className=\"my-6\" />\n </>\n )}\n\n {pathname.includes(\"misc-settings\") && (\n <>\n {/* \n <p className='font-bold' style={{ fontSize: 16, color: 'var(--solid-setting-title)' }}>Misc Details</p>\n <div className='flex flex-wrap -mx-2 -mt-2'>\n <div className='w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2'>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full md:w-1/2 px-2 pt-2 pb-4 md:pb-0\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">Use queue for sending emails</label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <InputSwitch\n name=\"shouldQueueEmails\"\n checked={formik.values.shouldQueueEmails}\n onChange={(e) => formik.setFieldValue(\"shouldQueueEmails\", e.value)}\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2\">\n <label className=\"form-field-label\">Use queue for sending SMS</label>\n </div>\n <div className=\"w-[16.666667%] sm:w-1/4 lg:w-[58.333333%] px-2 pt-2\">\n <InputSwitch\n name=\"shouldQueueSms\"\n checked={formik.values.shouldQueueSms}\n onChange={(e) => formik.setFieldValue(\"shouldQueueSms\", e.value)}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <Divider />\n */}\n <p className=\"solid-settings-heading\">Contact Support</p>\n <div className='flex flex-wrap -mx-2 -mt-2'>\n <div className=\"w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2\">\n <div className='flex flex-wrap -mx-2 -mt-2'>\n <div className=\"w-full md:w-1/2 px-2 pt-2 pb-4 md:pb-0\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Contact Support Email</label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidInput\n type=\"text\"\n id=\"contactSupportEmail\"\n name=\"contactSupportEmail\"\n onChange={formik.handleChange}\n value={formik.values.contactSupportEmail ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n <div className=\"w-full md:w-1/2 px-2 pt-2\">\n <div className=\"flex flex-wrap items-center -mx-2 -mt-2\">\n <div className=\"w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0\">\n <label className=\"form-field-label\">Display Name</label>\n </div>\n <div className=\"w-full md:w-[58.333333%] px-2 pt-2\">\n <SolidInput\n type=\"text\"\n id=\"contactSupportDisplayName\"\n name=\"contactSupportDisplayName\"\n onChange={formik.handleChange}\n value={formik.values.contactSupportDisplayName ?? ''}\n className='w-full'\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n )}\n {pathname.includes(\"ai-settings\") &&\n <AiSettingsSection\n aiConfig={formik.values.solidXGenAiCodeBuilderConfig as SolidAiConfig}\n onAiConfigChange={handleAiConfigChange}\n />\n }\n {pathname.includes(\"api-keys\") && session?.user?.id &&\n <ApiKeysTab\n userId={session.user.id}\n canCreate={session?.user?.isAllowedToGenerateApiKeys ?? false}\n />\n }\n </div>\n </form>\n </div>\n </div>\n </div>\n )\n}\n\ninterface AiSettingsSectionProps {\n aiConfig: SolidAiConfig;\n onAiConfigChange: (config: SolidAiConfig) => void;\n}\n\nconst DEFAULT_BEHAVIOR: ModelBehavior = { streaming: false, custom: \"\" };\nconst DEFAULT_MODEL_ENTRY: ModelEntry = { providerId: \"\", model: \"\", behavior: DEFAULT_BEHAVIOR };\n\nconst AiSettingsSection = ({ aiConfig, onAiConfigChange }: AiSettingsSectionProps) => {\n const [activeTab, setActiveTab] = useState<\"providers\" | \"default\" | \"fast\">(\"providers\");\n const [showAddProvider, setShowAddProvider] = useState(false);\n\n const providers = ensureBuiltInProviders(aiConfig.providers ?? {});\n\n const tabItems = [\n {\n value: \"providers\" as const,\n label: \"Providers\",\n content: (\n <ProvidersTab\n providers={providers}\n onProvidersChange={(newProviders) => {\n onAiConfigChange({ ...aiConfig, providers: newProviders });\n }}\n showAddModal={showAddProvider}\n onAddModalClose={() => setShowAddProvider(false)}\n />\n ),\n },\n {\n value: \"default\" as const,\n label: \"Intelligent Model\",\n content: (\n <ModelConfigTab\n modelEntry={aiConfig.models?.default ?? DEFAULT_MODEL_ENTRY}\n providers={providers}\n onModelEntryChange={(entry) => {\n onAiConfigChange({ ...aiConfig, models: { ...aiConfig.models, default: entry } });\n }}\n />\n ),\n },\n {\n value: \"fast\" as const,\n label: \"Fast Model\",\n content: (\n <ModelConfigTab\n modelEntry={aiConfig.models?.fast ?? DEFAULT_MODEL_ENTRY}\n providers={providers}\n onModelEntryChange={(entry) => {\n onAiConfigChange({ ...aiConfig, models: { ...aiConfig.models, fast: entry } });\n }}\n />\n ),\n },\n ];\n\n return (\n <div>\n <p className=\"solid-settings-heading\" style={{ marginBottom: \"1rem\" }}>\n AI Model Configuration\n </p>\n <SolidTabGroup\n tabs={tabItems}\n value={activeTab}\n onValueChange={(value) => setActiveTab(value as \"providers\" | \"default\" | \"fast\")}\n tabPosition=\"left\"\n extra={\n activeTab === \"providers\" ? (\n <SolidButton size=\"sm\" onClick={() => setShowAddProvider(true)}>\n Add\n </SolidButton>\n ) : undefined\n }\n />\n </div>\n );\n};\n"]}
|
|
@@ -47,6 +47,7 @@ export const GeneralSettings = () => {
|
|
|
47
47
|
activateUserOnRegistration: solidSettingsData?.data?.activateUserOnRegistration ?? false,
|
|
48
48
|
iamGoogleOAuthEnabled: solidSettingsData?.data?.iamGoogleOAuthEnabled ?? false,
|
|
49
49
|
iamMicrosoftOAuthEnabled: solidSettingsData?.data?.iamMicrosoftOAuthEnabled ?? false,
|
|
50
|
+
iamMicrosoftActiveDirectoryOAuthEnabled: solidSettingsData?.data?.iamMicrosoftActiveDirectoryOAuthEnabled ?? false,
|
|
50
51
|
iamFacebookOAuthEnabled: solidSettingsData?.data?.iamFacebookOAuthEnabled ?? false,
|
|
51
52
|
iamAppleOAuthEnabled: solidSettingsData?.data?.iamAppleOAuthEnabled ?? false,
|
|
52
53
|
// shouldQueueEmails: solidSettingsData?.data?.shouldQueueEmails ?? false,
|
|
@@ -892,6 +893,27 @@ export const GeneralSettings = () => {
|
|
|
892
893
|
<div className="w-full px-2 pt-2 mt-4">
|
|
893
894
|
<div className="flex flex-wrap items-center -mx-2 -mt-2">
|
|
894
895
|
<div className="w-[83.333333%] sm:w-[75%] lg:w-[41.666667%] px-2 pt-2">
|
|
896
|
+
<label className="form-field-label">
|
|
897
|
+
Allow Login/ Signup with Microsoft Active Directory{" "}
|
|
898
|
+
</label>
|
|
899
|
+
</div>
|
|
900
|
+
<div className="col-2 sm:col-3 lg:col-7">
|
|
901
|
+
<SolidSwitch
|
|
902
|
+
name="iamMicrosoftActiveDirectoryOAuthEnabled"
|
|
903
|
+
checked={formik.values.iamMicrosoftActiveDirectoryOAuthEnabled}
|
|
904
|
+
onChange={(checked) =>
|
|
905
|
+
formik.setFieldValue(
|
|
906
|
+
"iamMicrosoftActiveDirectoryOAuthEnabled",
|
|
907
|
+
checked,
|
|
908
|
+
)
|
|
909
|
+
}
|
|
910
|
+
/>
|
|
911
|
+
</div>
|
|
912
|
+
</div>
|
|
913
|
+
</div>
|
|
914
|
+
<div className="col-12 mt-3">
|
|
915
|
+
<div className="formgrid grid align-items-center">
|
|
916
|
+
<div className="col-10 sm:col-9 lg:col-5">
|
|
895
917
|
<label className="form-field-label">
|
|
896
918
|
Allow Login/ Signup with Facebook{" "}
|
|
897
919
|
</label>
|
|
@@ -3,7 +3,8 @@ type SocialMediaLoginProps = {
|
|
|
3
3
|
facebookEnabled?: boolean;
|
|
4
4
|
appleEnabled?: boolean;
|
|
5
5
|
microsoftEnabled?: boolean;
|
|
6
|
+
microsoftActiveDirectoryEnabled?: boolean;
|
|
6
7
|
};
|
|
7
|
-
export declare const SocialMediaLogin: ({ googleEnabled, facebookEnabled, appleEnabled, microsoftEnabled, }: SocialMediaLoginProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const SocialMediaLogin: ({ googleEnabled, facebookEnabled, appleEnabled, microsoftEnabled, microsoftActiveDirectoryEnabled, }: SocialMediaLoginProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
9
|
export {};
|
|
9
10
|
//# sourceMappingURL=SocialMediaLogin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocialMediaLogin.d.ts","sourceRoot":"","sources":["../../../src/components/common/SocialMediaLogin.tsx"],"names":[],"mappings":"AAIA,KAAK,qBAAqB,GAAG;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SocialMediaLogin.d.ts","sourceRoot":"","sources":["../../../src/components/common/SocialMediaLogin.tsx"],"names":[],"mappings":"AAIA,KAAK,qBAAqB,GAAG;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+BAA+B,CAAC,EAAE,OAAO,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,gBAAgB,yGAM1B,qBAAqB,4CA+IvB,CAAC"}
|