Make label Clickable

Fix changing URL for selfhosted
Update styling for calendar and thingview
This commit is contained in:
Mo Tarbin
2025-02-01 01:51:20 -05:00
parent 4527b229ed
commit ba149d0e96
10 changed files with 171 additions and 166 deletions
+99 -115
View File
@@ -1,36 +1,26 @@
import GoogleIcon from '@mui/icons-material/Google'
import { Preferences } from '@capacitor/preferences'
import {
Avatar,
Box,
Button,
Container,
Divider,
IconButton,
Input,
Sheet,
Snackbar,
Typography,
} from '@mui/joy'
import React from 'react'
import { LoginSocialGoogle } from 'reactjs-social-login'
import { API_URL, GOOGLE_CLIENT_ID, REDIRECT_URL } from '../../Config'
import Logo from '../../Logo'
import { GoogleAuth } from '@codetrix-studio/capacitor-google-auth';
import { Capacitor } from '@capacitor/core'
import { Settings } from '@mui/icons-material'
import { useNavigate } from 'react-router-dom'
import { Preferences } from '@capacitor/preferences'
import { API_URL } from '../../Config'
import Logo from '../../Logo'
import { apiManager } from '../../utils/TokenManager'
const LoginSettings = () => {
const [error, setError] = React.useState(null)
const Navigate = useNavigate()
const [serverURL, setServerURL] = React.useState('')
React.useEffect(() => {
Preferences.get({ key: 'customServerUrl' }).then((result) => {
Preferences.get({ key: 'customServerUrl' }).then(result => {
setServerURL(result.value || API_URL)
})
}, [])
@@ -38,13 +28,9 @@ const LoginSettings = () => {
const isValidServerURL = () => {
return serverURL.match(/^(http|https):\/\/[^ "]+$/)
}
return (
<Container
component='main'
maxWidth='xs'
>
return (
<Container component='main' maxWidth='xs'>
<Box
sx={{
marginTop: 4,
@@ -58,7 +44,7 @@ const LoginSettings = () => {
sx={{
mt: 1,
width: '100%',
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
@@ -67,103 +53,101 @@ const LoginSettings = () => {
boxShadow: 'md',
}}
>
<Logo />
<Logo />
<Typography level='h2'>
Done
<span
style={{
color: '#06b6d4',
}}
>
tick
</span>
</Typography>
<Typography level='h2'>
Done
<span
style={{
color: '#06b6d4',
}}
>
tick
</span>
</Typography>
<Typography level='body2' alignSelf={'start'} mt={4}>
Server URL
</Typography>
<Input
margin='normal'
required
fullWidth
id='serverURL'
name='serverURL'
autoFocus
value={serverURL}
onChange={e => {
setServerURL(e.target.value)
}}
/>
<Typography level='body2' alignSelf={'start'} mt={4} >
Server URL
</Typography>
<Input
margin='normal'
required
fullWidth
id='serverURL'
name='serverURL'
autoFocus
value={serverURL}
onChange={e => {
setServerURL(e.target.value)
}}
/>
<Typography mt={1} level='body-xs'>
Change the server URL to connect to a different server, such as your own self-hosted Donetick server.
</Typography>
<Typography mt={1} level='body-xs'>
Please ensure to include the protocol (http:// or https://) and the port number if necessary (default Donetick port is 2021).
</Typography>
<Button
fullWidth
size='lg'
variant='solid'
sx={{
width: '100%',
mt: 3,
mb: 2,
border: 'moccasin',
borderRadius: '8px',
}}
onClick={() => {
if (serverURL === '') {
Preferences.set({ key: 'customServerUrl', value: API_URL }).then(() => {
Navigate('/login')
})
return
}
if (!isValidServerURL()){
setError('Invalid server URL')
return
}
Preferences.set({ key: 'customServerUrl', value: serverURL }).then(() => {
Navigate('/login')
}
)
}
<Typography mt={1} level='body-xs'>
Change the server URL to connect to a different server, such as your
own self-hosted Donetick server.
</Typography>
<Typography mt={1} level='body-xs'>
Please ensure to include the protocol (http:// or https://) and the
port number if necessary (default Donetick port is 2021).
</Typography>
<Button
fullWidth
size='lg'
variant='solid'
sx={{
width: '100%',
mt: 3,
mb: 2,
border: 'moccasin',
borderRadius: '8px',
}}
onClick={() => {
if (serverURL === '') {
Preferences.set({
key: 'customServerUrl',
value: API_URL,
}).then(() => {
Navigate('/login')
})
return
}
>
Save
</Button>
<Button
fullWidth
size='lg'
variant='soft'
color='danger'
sx={{
width: '100%',
mb: 2,
border: 'moccasin',
borderRadius: '8px',
}}
onClick={() => {
Preferences.set({ key: 'customServerUrl', value: API_URL }).then(() => {
Navigate('/login')
})
}
if (!isValidServerURL()) {
setError('Invalid server URL')
return
}
>
Cancel and Reset
</Button>
Preferences.set({
key: 'customServerUrl',
value: serverURL,
}).then(() => {
apiManager.updateApiURL(serverURL + '/api/v1')
Navigate('/login')
})
}}
>
Save
</Button>
<Button
fullWidth
size='lg'
variant='soft'
color='danger'
sx={{
width: '100%',
mb: 2,
border: 'moccasin',
borderRadius: '8px',
}}
onClick={() => {
Preferences.set({ key: 'customServerUrl', value: API_URL }).then(
() => {
Navigate('/login')
},
)
}}
>
Cancel and Reset
</Button>
</Sheet>
</Box>
<Snackbar
+17 -21
View File
@@ -140,27 +140,23 @@ const LoginView = () => {
boxShadow: 'md',
}}
>
<IconButton
// on top right of the screen:
sx={{
position: 'absolute',
top: 2,
right: 2,
color: 'black',
}}
onClick={() => {
Navigate('/login/settings')
}}
>
{' '}
<Settings />
</IconButton>
{/* <img
src='/src/assets/logo.svg'
alt='logo'
width='128px'
height='128px'
/> */}
{Capacitor.isNativePlatform() && (
<IconButton
// on top right of the screen:
sx={{
position: 'absolute',
top: 2,
right: 2,
color: 'black',
}}
onClick={() => {
Navigate('/login/settings')
}}
>
{' '}
<Settings />
</IconButton>
)}
<Logo />
<Typography level='h2'>