@@ -14,6 +14,7 @@ import type {
1414} from '$components/modals/AccountModal/QuickConnectFlow' ;
1515import { QuickConnectFlow } from '$components/modals/AccountModal/QuickConnectFlow' ;
1616import { ServerTypePicker } from '$components/modals/AccountModal/ServerTypePicker' ;
17+ import { MobileConfigSignatureWarning } from '$components/modals/MobileConfigSignatureWarning' ;
1718import { getPredefinedServerUrl , SERVER_TYPE_OPTIONS } from '$constants/settings' ;
1819import { useConfirmDialog } from '$context/confirmDialogContext' ;
1920import { useAddCalendar , useCreateAccount , useUpdateAccount } from '$hooks/queries/useAccounts' ;
@@ -32,7 +33,7 @@ import { ensureTagExists } from '$lib/store/sync';
3233import { createTask } from '$lib/store/tasks' ;
3334import { isCertError , tauriRequest } from '$lib/tauriHttp' ;
3435import type { Account , Calendar , ServerType } from '$types' ;
35- import type { MobileConfigCalDAVSettings } from '$types/mobileconfig' ;
36+ import type { MobileConfigImportSelection } from '$types/mobileconfig' ;
3637import { generateUUID } from '$utils/misc' ;
3738
3839const log = loggers . account ;
@@ -50,7 +51,7 @@ const CONNECT_METHOD_SERVER_TYPES = new Set<ServerType>([
5051interface AccountModalProps {
5152 account : Account | null ;
5253 onClose : ( ) => void ;
53- preloadedConfig ?: MobileConfigCalDAVSettings ;
54+ preloadedConfig ?: MobileConfigImportSelection ;
5455 zIndex ?: 'z-60' | 'z-70' ;
5556}
5657
@@ -66,27 +67,30 @@ export function AccountModal({
6667 const createAccountMutation = useCreateAccount ( ) ;
6768 const updateAccountMutation = useUpdateAccount ( ) ;
6869 const addCalendarMutation = useAddCalendar ( ) ;
70+ const preloadedSettings = preloadedConfig ?. settings ;
6971
7072 const hasInitialType = ! ! ( account || preloadedConfig ) ;
7173 const [ step , setStep ] = useState < Step > ( hasInitialType ? 'credentials' : 'pick-type' ) ;
7274
73- const [ name , setName ] = useState ( ( ) => preloadedConfig ?. accountName || account ?. name || '' ) ;
75+ const [ name , setName ] = useState ( ( ) => preloadedSettings ?. accountName || account ?. name || '' ) ;
7476 const [ icon , setIcon ] = useState ( ( ) => account ?. icon || 'user' ) ;
7577 const [ emoji , setEmoji ] = useState ( ( ) => account ?. emoji || '' ) ;
7678 const [ serverUrl , setServerUrl ] = useState (
77- ( ) => preloadedConfig ?. serverUrl || account ?. caldav ?. serverUrl || '' ,
79+ ( ) => preloadedSettings ?. serverUrl || account ?. caldav ?. serverUrl || '' ,
7880 ) ;
7981 const [ username , setUsername ] = useState (
80- ( ) => preloadedConfig ?. username || account ?. caldav ?. username || '' ,
82+ ( ) => preloadedSettings ?. username || account ?. caldav ?. username || '' ,
8183 ) ;
82- const [ password , setPassword ] = useState ( ( ) => preloadedConfig ?. password || '' ) ;
84+ const [ password , setPassword ] = useState ( ( ) => preloadedSettings ?. password || '' ) ;
8385 const [ serverType , setServerType ] = useState < ServerType > (
84- ( ) => preloadedConfig ?. serverType || account ?. caldav ?. serverType || 'generic' ,
86+ ( ) => preloadedSettings ?. serverType || account ?. caldav ?. serverType || 'generic' ,
8587 ) ;
8688 const [ calendarHomeUrl , setCalendarHomeUrl ] = useState (
8789 ( ) => account ?. caldav ?. calendarHomeUrl || '' ,
8890 ) ;
89- const [ principalUrl , setPrincipalUrl ] = useState ( ( ) => account ?. caldav ?. principalUrl || '' ) ;
91+ const [ principalUrl , setPrincipalUrl ] = useState (
92+ ( ) => preloadedSettings ?. principalUrl || account ?. caldav ?. principalUrl || '' ,
93+ ) ;
9094 const [ isLoading , setIsLoading ] = useState ( false ) ;
9195 const [ isTesting , setIsTesting ] = useState ( false ) ;
9296 const [ testSuccess , setTestSuccess ] = useState ( false ) ;
@@ -728,32 +732,39 @@ export function AccountModal({
728732 ) }
729733
730734 { step === 'credentials' && (
731- < CredentialsForm
732- serverType = { serverType }
733- name = { name }
734- onNameChange = { setName }
735- icon = { icon }
736- onIconChange = { setIcon }
737- emoji = { emoji }
738- onEmojiChange = { setEmoji }
739- serverUrl = { serverUrl }
740- onServerUrlChange = { setServerUrl }
741- username = { username }
742- onUsernameChange = { setUsername }
743- password = { password }
744- onPasswordChange = { setPassword }
745- principalUrl = { principalUrl }
746- onPrincipalUrlChange = { setPrincipalUrl }
747- calendarHomeUrl = { calendarHomeUrl }
748- onCalendarHomeUrlChange = { setCalendarHomeUrl }
749- account = { account }
750- error = { setupError }
751- setupNotice = { setupNotice }
752- testSuccess = { testSuccess }
753- testedCalendarCount = { testedCalendars . length }
754- testedPushSupportedCount = { testedCalendars . filter ( ( c ) => c . pushSupported ) . length }
755- onSubmit = { handleSubmit }
756- />
735+ < div >
736+ { preloadedConfig ?. signature === 'signed-unverified' && (
737+ < div className = "px-4 pt-4" >
738+ < MobileConfigSignatureWarning signature = { preloadedConfig . signature } />
739+ </ div >
740+ ) }
741+ < CredentialsForm
742+ serverType = { serverType }
743+ name = { name }
744+ onNameChange = { setName }
745+ icon = { icon }
746+ onIconChange = { setIcon }
747+ emoji = { emoji }
748+ onEmojiChange = { setEmoji }
749+ serverUrl = { serverUrl }
750+ onServerUrlChange = { setServerUrl }
751+ username = { username }
752+ onUsernameChange = { setUsername }
753+ password = { password }
754+ onPasswordChange = { setPassword }
755+ principalUrl = { principalUrl }
756+ onPrincipalUrlChange = { setPrincipalUrl }
757+ calendarHomeUrl = { calendarHomeUrl }
758+ onCalendarHomeUrlChange = { setCalendarHomeUrl }
759+ account = { account }
760+ error = { setupError }
761+ setupNotice = { setupNotice }
762+ testSuccess = { testSuccess }
763+ testedCalendarCount = { testedCalendars . length }
764+ testedPushSupportedCount = { testedCalendars . filter ( ( c ) => c . pushSupported ) . length }
765+ onSubmit = { handleSubmit }
766+ />
767+ </ div >
757768 ) }
758769 </ div >
759770 </ ModalWrapper >
0 commit comments