Merge branch 'login' into develop
This commit is contained in:
commit
2ecc9fad19
|
|
@ -8,7 +8,7 @@
|
|||
Created by potrace 1.16, written by Peter Selinger 2001-2019
|
||||
</metadata>
|
||||
<g transform="translate(0.000000,327.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
fill="#fdfefe" stroke="none">
|
||||
<path d="M1153 3226 c-219 -42 -403 -142 -552 -302 -431 -460 -324 -1213 219
|
||||
-1534 77 -46 174 -84 277 -111 123 -32 329 -32 456 -1 103 26 214 70 283 113
|
||||
30 19 52 28 59 23 74 -57 111 -74 164 -74 130 0 212 103 187 235 -5 22 -23 54
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 28 KiB |
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="800" width="1200" viewBox="-93.2412 -156.2325 808.0904 937.395"><defs><linearGradient x1=".5" y1="0" x2=".5" y2="1" id="a"><stop stop-color="#20B038" offset="0%"/><stop stop-color="#60D66A" offset="100%"/></linearGradient><linearGradient x1=".5" y1="0" x2=".5" y2="1" id="b"><stop stop-color="#F9F9F9" offset="0%"/><stop stop-color="#FFF" offset="100%"/></linearGradient><linearGradient xlink:href="#a" id="f" x1="270.265" y1="1.184" x2="270.265" y2="541.56" gradientTransform="scale(.99775 1.00225)" gradientUnits="userSpaceOnUse"/><linearGradient xlink:href="#b" id="g" x1="279.952" y1=".811" x2="279.952" y2="560.571" gradientTransform="scale(.99777 1.00224)" gradientUnits="userSpaceOnUse"/><filter x="-.056" y="-.062" width="1.112" height="1.11" filterUnits="objectBoundingBox" id="c"><feGaussianBlur stdDeviation="2" in="SourceGraphic"/></filter><filter x="-.082" y="-.088" width="1.164" height="1.162" filterUnits="objectBoundingBox" id="d"><feOffset dy="-4" in="SourceAlpha" result="shadowOffsetOuter1"/><feGaussianBlur stdDeviation="12.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"/><feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.21 0" in="shadowBlurOuter1"/></filter><path d="M576.337 707.516c-.018-49.17 12.795-97.167 37.15-139.475L574 423.48l147.548 38.792c40.652-22.23 86.423-33.944 133.002-33.962h.12c153.395 0 278.265 125.166 278.33 278.98.025 74.548-28.9 144.642-81.446 197.373C999 957.393 929.12 986.447 854.67 986.48c-153.42 0-278.272-125.146-278.333-278.964z" id="e"/></defs><g fill="none" fill-rule="evenodd"><g transform="matrix(1 0 0 -1 -542.696 1013.504)" fill="#000" fill-rule="nonzero" filter="url(#c)"><use filter="url(#d)" xlink:href="#e" width="100%" height="100%"/><use fill-opacity=".2" xlink:href="#e" width="100%" height="100%"/></g><path transform="matrix(1 0 0 -1 41.304 577.504)" fill-rule="nonzero" fill="url(#f)" d="M2.325 274.421c-.014-47.29 12.342-93.466 35.839-134.166L.077 1.187l142.314 37.316C181.6 17.133 225.745 5.856 270.673 5.84h.12c147.95 0 268.386 120.396 268.447 268.372.03 71.707-27.87 139.132-78.559 189.858-50.68 50.726-118.084 78.676-189.898 78.708-147.968 0-268.398-120.386-268.458-268.358"/><path transform="matrix(1 0 0 -1 31.637 586.837)" fill-rule="nonzero" fill="url(#g)" d="M2.407 283.847c-.018-48.996 12.784-96.824 37.117-138.983L.072.814l147.419 38.654c40.616-22.15 86.346-33.824 132.885-33.841h.12c153.26 0 278.02 124.724 278.085 277.994.026 74.286-28.874 144.132-81.374 196.678-52.507 52.544-122.326 81.494-196.711 81.528-153.285 0-278.028-124.704-278.09-277.98zm87.789-131.724l-5.503 8.74C61.555 197.653 49.34 240.17 49.36 283.828c.049 127.399 103.73 231.044 231.224 231.044 61.74-.025 119.765-24.09 163.409-67.763 43.639-43.67 67.653-101.726 67.635-163.469-.054-127.403-103.739-231.063-231.131-231.063h-.09c-41.482.022-82.162 11.159-117.642 32.214l-8.444 5.004L66.84 66.86z"/><path d="M242.63 186.78c-5.205-11.57-10.684-11.803-15.636-12.006-4.05-.173-8.687-.162-13.316-.162-4.632 0-12.161 1.74-18.527 8.693-6.37 6.953-24.322 23.761-24.322 57.947 0 34.19 24.901 67.222 28.372 71.862 3.474 4.634 48.07 77.028 118.694 104.88 58.696 23.146 70.64 18.542 83.38 17.384 12.74-1.158 41.11-16.805 46.9-33.03 5.791-16.223 5.791-30.128 4.054-33.035-1.738-2.896-6.37-4.633-13.319-8.108-6.95-3.475-41.11-20.287-47.48-22.603-6.37-2.316-11.003-3.474-15.635 3.482-4.633 6.95-17.94 22.596-21.996 27.23-4.053 4.643-8.106 5.222-15.056 1.747-6.949-3.485-29.328-10.815-55.876-34.485-20.656-18.416-34.6-41.16-38.656-48.116-4.053-6.95-.433-10.714 3.052-14.178 3.12-3.113 6.95-8.11 10.424-12.168 3.467-4.057 4.626-6.953 6.942-11.586 2.316-4.64 1.158-8.698-.579-12.172-1.737-3.475-15.241-37.838-21.42-51.576" fill="#FFF"/></g></svg>
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
|
|
@ -31,14 +31,14 @@ export const authApiMocks = (mock: ExtendedMockAdapter) => {
|
|||
if (!user) {
|
||||
error.push({
|
||||
type: 'email',
|
||||
message: 'Check your email address'
|
||||
message: 'Verifique su correo'
|
||||
});
|
||||
}
|
||||
|
||||
if (user && user.password !== password) {
|
||||
error.push({
|
||||
type: 'password',
|
||||
message: 'Check your password'
|
||||
message: 'Contraseña incorrecta'
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -67,7 +67,7 @@ export const authApiMocks = (mock: ExtendedMockAdapter) => {
|
|||
return [200, null, { 'New-Access-Token': access_token }];
|
||||
}
|
||||
|
||||
const error = 'Invalid access token detected or user not found';
|
||||
const error = 'Acceso inválido o usario no encontrado';
|
||||
|
||||
return [401, { data: error }];
|
||||
});
|
||||
|
|
@ -81,7 +81,7 @@ export const authApiMocks = (mock: ExtendedMockAdapter) => {
|
|||
return [200, user, { 'New-Access-Token': access_token }];
|
||||
}
|
||||
|
||||
const error = 'Invalid access token detected or user not found';
|
||||
const error = 'Acceso inválido o usario no encontrado';
|
||||
|
||||
return [401, { error }];
|
||||
});
|
||||
|
|
@ -123,7 +123,7 @@ export const authApiMocks = (mock: ExtendedMockAdapter) => {
|
|||
if (isEmailExists) {
|
||||
error.push({
|
||||
type: 'email',
|
||||
message: 'The email address is already in use'
|
||||
message: 'El correo ya ha sido usado para registrarse'
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7493,7 +7493,7 @@
|
|||
"data": {
|
||||
"displayName": "Abbott Keitch",
|
||||
"photoURL": "assets/images/avatars/brian-hughes.jpg",
|
||||
"email": "admin@fusetheme.com",
|
||||
"email": "admin@qsoftec.com",
|
||||
"settings": {
|
||||
"layout": {},
|
||||
"theme": {}
|
||||
|
|
@ -32753,7 +32753,7 @@
|
|||
"data": {
|
||||
"displayName": "Abbott Keitch",
|
||||
"photoURL": "assets/images/avatars/brian-hughes.jpg",
|
||||
"email": "admin@fusetheme.com",
|
||||
"email": "admin@qsoftec.com",
|
||||
"settings": {
|
||||
"layout": {},
|
||||
"theme": {}
|
||||
|
|
|
|||
|
|
@ -35,13 +35,13 @@ export const themesConfig: FuseThemesType = {
|
|||
},
|
||||
primary: {
|
||||
light: '#64748b',
|
||||
main: '#1e293b',
|
||||
main: '#081c44',
|
||||
dark: '#0f172a',
|
||||
contrastText: darkPaletteText.primary
|
||||
},
|
||||
secondary: {
|
||||
light: '#818cf8',
|
||||
main: '#4f46e5',
|
||||
main: '#3cb1fe',
|
||||
dark: '#3730a3',
|
||||
contrastText: darkPaletteText.primary
|
||||
},
|
||||
|
|
@ -68,7 +68,7 @@ export const themesConfig: FuseThemesType = {
|
|||
},
|
||||
primary: {
|
||||
light: '#64748b',
|
||||
main: '#334155',
|
||||
main: '#081c44',
|
||||
dark: '#0f172a',
|
||||
contrastText: darkPaletteText.primary
|
||||
},
|
||||
|
|
|
|||
|
|
@ -23,13 +23,6 @@ import FirebaseSignInTab from './tabs/FirebaseSignInTab';
|
|||
/**
|
||||
* Form Validation Schema
|
||||
*/
|
||||
const schema = z.object({
|
||||
email: z.string().email('You must enter a valid email').nonempty('You must enter an email'),
|
||||
password: z
|
||||
.string()
|
||||
.min(8, 'Password is too short - must be at least 8 chars.')
|
||||
.nonempty('Please enter your password.')
|
||||
});
|
||||
|
||||
const tabs = [
|
||||
{
|
||||
|
|
@ -46,38 +39,12 @@ const tabs = [
|
|||
}
|
||||
];
|
||||
|
||||
type FormType = {
|
||||
email: string;
|
||||
password: string;
|
||||
remember?: boolean;
|
||||
};
|
||||
|
||||
const defaultValues = {
|
||||
email: '',
|
||||
password: '',
|
||||
remember: true
|
||||
};
|
||||
|
||||
/**
|
||||
* The full screen reversed sign in page.
|
||||
*/
|
||||
function SignInPage() {
|
||||
const [selectedTabId, setSelectedTabId] = useState(tabs[0].id);
|
||||
|
||||
function handleSelectTab(id: string) {
|
||||
setSelectedTabId(id);
|
||||
}
|
||||
|
||||
const { control, formState, handleSubmit, reset } = useForm<FormType>({
|
||||
mode: 'onChange',
|
||||
defaultValues,
|
||||
resolver: zodResolver(schema)
|
||||
});
|
||||
|
||||
const { isValid, dirtyFields, errors } = formState;
|
||||
|
||||
function onSubmit() {
|
||||
reset(defaultValues);
|
||||
setSelectedTabId("jwt");
|
||||
}
|
||||
|
||||
return (
|
||||
|
|
@ -104,7 +71,7 @@ function SignInPage() {
|
|||
</Link>
|
||||
</div>
|
||||
|
||||
<Tabs
|
||||
{/* <Tabs
|
||||
value={_.findIndex(tabs, { id: selectedTabId })}
|
||||
variant="fullWidth"
|
||||
className="w-full mt-24 mb-32"
|
||||
|
|
@ -125,97 +92,96 @@ function SignInPage() {
|
|||
label={item.title}
|
||||
/>
|
||||
))}
|
||||
</Tabs>
|
||||
{selectedTabId === 'jwt' && <JwtLoginTab />}
|
||||
</Tabs> */}
|
||||
{selectedTabId === 'jwt' && <JwtLoginTab />}
|
||||
|
||||
{selectedTabId === 'firebase' && <FirebaseSignInTab />}
|
||||
{/* {selectedTabId === 'firebase' && <FirebaseSignInTab />} */}
|
||||
|
||||
<div className="mt-32 flex items-center">
|
||||
<div className="mt-px flex-auto border-t" />
|
||||
<Typography
|
||||
className="mx-8"
|
||||
color="text.secondary"
|
||||
>
|
||||
Or continue with
|
||||
</Typography>
|
||||
<div className="mt-px flex-auto border-t" />
|
||||
</div>
|
||||
|
||||
<div className="mt-32 flex items-center space-x-16">
|
||||
<Button
|
||||
variant="outlined"
|
||||
className="flex-auto"
|
||||
>
|
||||
<FuseSvgIcon
|
||||
size={20}
|
||||
color="action"
|
||||
>
|
||||
feather:facebook
|
||||
</FuseSvgIcon>
|
||||
</Button>
|
||||
<Button
|
||||
variant="outlined"
|
||||
className="flex-auto"
|
||||
>
|
||||
<FuseSvgIcon
|
||||
size={20}
|
||||
color="action"
|
||||
>
|
||||
feather:twitter
|
||||
</FuseSvgIcon>
|
||||
</Button>
|
||||
<Button
|
||||
variant="outlined"
|
||||
className="flex-auto"
|
||||
>
|
||||
<FuseSvgIcon
|
||||
size={20}
|
||||
color="action"
|
||||
>
|
||||
feather:github
|
||||
</FuseSvgIcon>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Box
|
||||
className="relative hidden h-full flex-auto items-center justify-center overflow-hidden p-64 md:flex lg:px-112"
|
||||
sx={{ backgroundColor: 'primary.main' }}
|
||||
>
|
||||
className="relative hidden h-auto justify-center items-center flex-auto p-64 md:flex lg:px-112"
|
||||
sx={{ backgroundColor: 'primary.main' }}>
|
||||
<svg
|
||||
className="pointer-events-none absolute inset-0"
|
||||
viewBox="0 0 960 540"
|
||||
width="100%"
|
||||
height="100%"
|
||||
preserveAspectRatio="xMidYMax slice"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<Box
|
||||
component="g"
|
||||
sx={{ color: 'primary.light' }}
|
||||
className="opacity-20"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth="100"
|
||||
>
|
||||
<circle
|
||||
r="234"
|
||||
cx="796"
|
||||
cy="23"
|
||||
/>
|
||||
</Box>
|
||||
</svg>
|
||||
<Box
|
||||
component="svg"
|
||||
className="absolute -right-64 -top-64 opacity-20"
|
||||
sx={{ color: 'primary.light' }}
|
||||
viewBox="0 0 220 192"
|
||||
width="220px"
|
||||
height="192px"
|
||||
fill="none"
|
||||
>
|
||||
<defs>
|
||||
<pattern
|
||||
id="837c3e70-6c3a-44e6-8854-cc48c737b659"
|
||||
x="0"
|
||||
y="0"
|
||||
width="20"
|
||||
height="20"
|
||||
patternUnits="userSpaceOnUse"
|
||||
>
|
||||
<rect
|
||||
x="0"
|
||||
y="0"
|
||||
width="4"
|
||||
height="4"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</pattern>
|
||||
</defs>
|
||||
<rect
|
||||
width="220"
|
||||
height="192"
|
||||
fill="url(#837c3e70-6c3a-44e6-8854-cc48c737b659)"
|
||||
/>
|
||||
</Box>
|
||||
|
||||
<div className="relative z-10 w-full max-w-2xl">
|
||||
<img
|
||||
className="w-48"
|
||||
src="assets/images/empresa/logoAlphaBC.svg"
|
||||
className="w-216 "
|
||||
src="assets/images/empresa/logoAlphaWC.svg"
|
||||
alt="logo"
|
||||
width="500"
|
||||
/>
|
||||
<div className="text-7xl font-bold leading-none text-gray-100">
|
||||
<div>Welcome to</div>
|
||||
<div>our community</div>
|
||||
<div className="text-3xl font-bold leading-loose text-gray-100">
|
||||
<div>Bienvenido al sistema que se encarga de tu facturación electrónica.</div>
|
||||
</div>
|
||||
<div className="mt-24 text-lg leading-6 tracking-tight text-gray-400">
|
||||
Fuse helps developers to build organized and well coded dashboards full of beautiful and
|
||||
rich modules. Join us and start building your application today.
|
||||
<div className="flex justify-center items-center mt-12 text-md leading-none text-gray-400">
|
||||
<div>¿Necesitas ayuda? Comunícate con nosotros.</div>
|
||||
</div>
|
||||
<div className="flex overflow-hidden items-center mt-12 text-md leading-none text-gray-400">
|
||||
<div>Soporte técnico: 0967722226</div>
|
||||
<a aria-label="Chat WhatsApp" href="https://wa.me/967722226/?text=Hola!%20Necesito%20ayuda%20en%20el%20sistema%20de%20facturación">
|
||||
<img className='w-52' alt="Chat WhatsApp" src="assets/images/logo/WhatsApp-Logo.wine.svg" />
|
||||
</a>
|
||||
</div>
|
||||
<div className="mt-2 text-md leading-none text-gray-400">
|
||||
<div>Correo eletrónico: info@qsoftec.com</div>
|
||||
</div>
|
||||
<div className="mt-32 flex items-center">
|
||||
<AvatarGroup
|
||||
sx={{
|
||||
'& .MuiAvatar-root': {
|
||||
borderColor: 'primary.main'
|
||||
}
|
||||
}}
|
||||
>
|
||||
<Avatar src="assets/images/avatars/female-18.jpg" />
|
||||
<Avatar src="assets/images/avatars/female-11.jpg" />
|
||||
<Avatar src="assets/images/avatars/male-09.jpg" />
|
||||
<Avatar src="assets/images/avatars/male-16.jpg" />
|
||||
</AvatarGroup>
|
||||
|
||||
<div className="ml-16 font-medium tracking-tight text-gray-400">
|
||||
More than 17k people joined us, it's your turn
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
</Paper>
|
||||
|
|
|
|||
|
|
@ -16,11 +16,11 @@ import { zodResolver } from '@hookform/resolvers/zod';
|
|||
* Form Validation Schema
|
||||
*/
|
||||
const schema = z.object({
|
||||
email: z.string().email('You must enter a valid email').nonempty('You must enter an email'),
|
||||
email: z.string().email('Debe ingresar un correo válido').nonempty('Debe ingresar un correo'),
|
||||
password: z
|
||||
.string()
|
||||
.min(4, 'Password is too short - must be at least 4 chars.')
|
||||
.nonempty('Please enter your password.')
|
||||
.min(4, 'La contraseña es muy corta, debe ingresar almenos 4 caracteres.')
|
||||
.nonempty('Por favor ingrese su contraseña.')
|
||||
});
|
||||
|
||||
type FormType = {
|
||||
|
|
@ -47,7 +47,7 @@ function jwtSignInTab() {
|
|||
const { isValid, dirtyFields, errors } = formState;
|
||||
|
||||
useEffect(() => {
|
||||
setValue('email', 'admin@fusetheme.com', { shouldDirty: true, shouldValidate: true });
|
||||
setValue('email', 'admin@qsoftec.com', { shouldDirty: true, shouldValidate: true });
|
||||
setValue('password', 'admin', { shouldDirty: true, shouldValidate: true });
|
||||
}, [setValue]);
|
||||
|
||||
|
|
@ -95,7 +95,7 @@ function jwtSignInTab() {
|
|||
<TextField
|
||||
{...field}
|
||||
className="mb-24"
|
||||
label="Email"
|
||||
label="Correo electrónico"
|
||||
autoFocus
|
||||
type="email"
|
||||
error={!!errors.email}
|
||||
|
|
@ -114,7 +114,7 @@ function jwtSignInTab() {
|
|||
<TextField
|
||||
{...field}
|
||||
className="mb-24"
|
||||
label="Password"
|
||||
label="Contraseña"
|
||||
type="password"
|
||||
error={!!errors.password}
|
||||
helperText={errors?.password?.message}
|
||||
|
|
@ -132,7 +132,7 @@ function jwtSignInTab() {
|
|||
render={({ field }) => (
|
||||
<FormControl>
|
||||
<FormControlLabel
|
||||
label="Remember me"
|
||||
label="Recúerdame"
|
||||
control={
|
||||
<Checkbox
|
||||
size="small"
|
||||
|
|
@ -148,20 +148,20 @@ function jwtSignInTab() {
|
|||
className="text-md font-medium"
|
||||
to="/pages/auth/forgot-password"
|
||||
>
|
||||
Forgot password?
|
||||
Olvidaste tu contraseña?
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
<Button
|
||||
variant="contained"
|
||||
color="secondary"
|
||||
color="primary"
|
||||
className=" mt-16 w-full"
|
||||
aria-label="Sign in"
|
||||
disabled={_.isEmpty(dirtyFields) || !isValid}
|
||||
type="submit"
|
||||
size="large"
|
||||
>
|
||||
Sign in
|
||||
Ingresar
|
||||
</Button>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -37,28 +37,29 @@ function SignUpPage() {
|
|||
}
|
||||
|
||||
return (
|
||||
<div className="flex min-w-0 flex-1 flex-col items-center sm:flex-row sm:justify-center md:items-start md:justify-start">
|
||||
<Paper className="h-full w-full px-16 py-8 ltr:border-r-1 rtl:border-l-1 sm:h-auto sm:w-auto sm:rounded-2xl sm:p-48 sm:shadow md:flex md:h-full md:w-1/2 md:items-center md:justify-end md:rounded-none md:p-64 md:shadow-none">
|
||||
<div className="flex min-w-0 flex-auto flex-col items-center sm:justify-center md:p-32">
|
||||
<Paper className="flex min-h-full w-full overflow-hidden rounded-0 sm:min-h-auto sm:w-auto sm:rounded-2xl sm:shadow md:w-full md:max-w-6xl">
|
||||
<div className="w-full px-16 py-32 ltr:border-r-1 rtl:border-l-1 sm:w-auto sm:p-48 md:p-64">
|
||||
<div className="mx-auto w-full max-w-320 sm:mx-0 sm:w-320">
|
||||
<img
|
||||
className="w-48"
|
||||
src="assets/images/logo/logo.svg"
|
||||
src="assets/images/logo/logo1.svg"
|
||||
alt="logo"
|
||||
/>
|
||||
|
||||
<Typography className="mt-32 text-4xl font-extrabold leading-tight tracking-tight">
|
||||
Sign up
|
||||
Registrarse
|
||||
</Typography>
|
||||
<div className="mt-2 flex items-baseline font-medium">
|
||||
<Typography>Already have an account?</Typography>
|
||||
<Typography>Ya tienes cuenta?</Typography>
|
||||
<Link
|
||||
className="ml-4"
|
||||
to="/sign-in"
|
||||
>
|
||||
Sign in
|
||||
Inicia sesión
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
{/*
|
||||
<Tabs
|
||||
value={_.findIndex(tabs, { id: selectedTabId })}
|
||||
variant="fullWidth"
|
||||
|
|
@ -81,107 +82,97 @@ function SignUpPage() {
|
|||
/>
|
||||
))}
|
||||
</Tabs>
|
||||
|
||||
{selectedTabId === 'jwt' && <JwtSignUpTab />}
|
||||
{selectedTabId === 'firebase' && <FirebaseSignUpTab />}
|
||||
*/}
|
||||
<JwtSignUpTab />
|
||||
{/* {selectedTabId === 'firebase' && <FirebaseSignUpTab />}
|
||||
*/} </div>
|
||||
</div>
|
||||
</Paper>
|
||||
|
||||
<Box
|
||||
className="relative hidden h-full flex-auto items-center justify-center overflow-hidden p-64 md:flex lg:px-112"
|
||||
sx={{ backgroundColor: 'primary.main' }}
|
||||
>
|
||||
<svg
|
||||
className="pointer-events-none absolute inset-0"
|
||||
viewBox="0 0 960 540"
|
||||
width="100%"
|
||||
height="100%"
|
||||
preserveAspectRatio="xMidYMax slice"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<Box
|
||||
component="g"
|
||||
sx={{ color: 'primary.light' }}
|
||||
className="opacity-20"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth="100"
|
||||
>
|
||||
<circle
|
||||
r="234"
|
||||
cx="196"
|
||||
cy="23"
|
||||
/>
|
||||
<circle
|
||||
r="234"
|
||||
cx="790"
|
||||
cy="491"
|
||||
/>
|
||||
</Box>
|
||||
</svg>
|
||||
<Box
|
||||
component="svg"
|
||||
className="absolute -right-64 -top-64 opacity-20"
|
||||
sx={{ color: 'primary.light' }}
|
||||
viewBox="0 0 220 192"
|
||||
width="220px"
|
||||
height="192px"
|
||||
fill="none"
|
||||
>
|
||||
<defs>
|
||||
<pattern
|
||||
id="837c3e70-6c3a-44e6-8854-cc48c737b659"
|
||||
x="0"
|
||||
y="0"
|
||||
width="20"
|
||||
height="20"
|
||||
patternUnits="userSpaceOnUse"
|
||||
className="relative hidden h-auto justify-center items-center flex-auto p-64 md:flex lg:px-112"
|
||||
sx={{ backgroundColor: 'primary.main' }}>
|
||||
<svg
|
||||
className="pointer-events-none absolute inset-0"
|
||||
viewBox="0 0 960 540"
|
||||
width="100%"
|
||||
height="100%"
|
||||
preserveAspectRatio="xMidYMax slice"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<Box
|
||||
component="g"
|
||||
sx={{ color: 'primary.light' }}
|
||||
className="opacity-20"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth="100"
|
||||
>
|
||||
<rect
|
||||
<circle
|
||||
r="234"
|
||||
cx="796"
|
||||
cy="23"
|
||||
/>
|
||||
</Box>
|
||||
</svg>
|
||||
<Box
|
||||
component="svg"
|
||||
className="absolute -right-64 -top-64 opacity-20"
|
||||
sx={{ color: 'primary.light' }}
|
||||
viewBox="0 0 220 192"
|
||||
width="220px"
|
||||
height="192px"
|
||||
fill="none"
|
||||
>
|
||||
<defs>
|
||||
<pattern
|
||||
id="837c3e70-6c3a-44e6-8854-cc48c737b659"
|
||||
x="0"
|
||||
y="0"
|
||||
width="4"
|
||||
height="4"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</pattern>
|
||||
</defs>
|
||||
<rect
|
||||
width="220"
|
||||
height="192"
|
||||
fill="url(#837c3e70-6c3a-44e6-8854-cc48c737b659)"
|
||||
/>
|
||||
</Box>
|
||||
width="20"
|
||||
height="20"
|
||||
patternUnits="userSpaceOnUse"
|
||||
>
|
||||
<rect
|
||||
x="0"
|
||||
y="0"
|
||||
width="4"
|
||||
height="4"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</pattern>
|
||||
</defs>
|
||||
<rect
|
||||
width="220"
|
||||
height="192"
|
||||
fill="url(#837c3e70-6c3a-44e6-8854-cc48c737b659)"
|
||||
/>
|
||||
</Box>
|
||||
|
||||
<div className="relative z-10 w-full max-w-2xl">
|
||||
<div className="text-7xl font-bold leading-none text-gray-100">
|
||||
<div>Welcome to</div>
|
||||
<div>our community</div>
|
||||
</div>
|
||||
<div className="mt-24 text-lg leading-6 tracking-tight text-gray-400">
|
||||
Fuse helps developers to build organized and well coded dashboards full of beautiful and rich
|
||||
modules. Join us and start building your application today.
|
||||
</div>
|
||||
<div className="mt-32 flex items-center">
|
||||
<AvatarGroup
|
||||
sx={{
|
||||
'& .MuiAvatar-root': {
|
||||
borderColor: 'primary.main'
|
||||
}
|
||||
}}
|
||||
>
|
||||
<Avatar src="assets/images/avatars/female-18.jpg" />
|
||||
<Avatar src="assets/images/avatars/female-11.jpg" />
|
||||
<Avatar src="assets/images/avatars/male-09.jpg" />
|
||||
<Avatar src="assets/images/avatars/male-16.jpg" />
|
||||
</AvatarGroup>
|
||||
|
||||
<div className="ml-16 font-medium tracking-tight text-gray-400">
|
||||
More than 17k people joined us, it's your turn
|
||||
<div className="relative z-10 w-full max-w-2xl">
|
||||
<img
|
||||
className="w-216 "
|
||||
src="assets/images/empresa/logoAlphaWC.svg"
|
||||
alt="logo"
|
||||
/>
|
||||
<div className="text-3xl font-bold leading-loose text-gray-100">
|
||||
<div>Bienvenido al sistema que se encarga de tu facturación electrónica.</div>
|
||||
</div>
|
||||
<div className="flex justify-center items-center mt-24 text-lg leading-none text-gray-400">
|
||||
<div>¿Necesitas ayuda? Comunícate con nosotros.</div>
|
||||
</div>
|
||||
<div className="flex overflow-hidden items-center mt-12 text-md leading-none text-gray-400">
|
||||
<div>Soporte técnico: 0967722226</div>
|
||||
<a aria-label="Chat WhatsApp" href="https://wa.me/967722226/?text=Hola!%20Necesito%20ayuda%20en%20el%20sistema%20de%20facturación">
|
||||
<img className='w-52' alt="Chat WhatsApp" src="assets/images/logo/WhatsApp-Logo.wine.svg" />
|
||||
</a>
|
||||
</div>
|
||||
<div className="mt-2 text-md leading-none text-gray-400">
|
||||
<div>Correo eletrónico: info@qsoftec.com</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
</Box>
|
||||
</Paper>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,17 +15,17 @@ import { SignUpPayload, useAuth } from '../../../auth/AuthRouteProvider';
|
|||
*/
|
||||
const schema = z
|
||||
.object({
|
||||
displayName: z.string().nonempty('You must enter your name'),
|
||||
email: z.string().email('You must enter a valid email').nonempty('You must enter an email'),
|
||||
displayName: z.string().nonempty('Debe ingresar un nombre de usuario'),
|
||||
email: z.string().email('Debe ingresar un correo válido').nonempty('Debe ingresar un correo'),
|
||||
password: z
|
||||
.string()
|
||||
.nonempty('Please enter your password.')
|
||||
.min(8, 'Password is too short - should be 8 chars minimum.'),
|
||||
passwordConfirm: z.string().nonempty('Password confirmation is required'),
|
||||
acceptTermsConditions: z.boolean().refine((val) => val === true, 'The terms and conditions must be accepted.')
|
||||
.nonempty('Por favor ingrese su contraseña.')
|
||||
.min(4, 'La contraseña es muy corta, debe ingresar almenos 4 caracteres'),
|
||||
passwordConfirm: z.string().nonempty('Debe ingresar su contraseña'),
|
||||
acceptTermsConditions: z.boolean().refine((val) => val === true, 'Debe aceptar los términos y condiciones')
|
||||
})
|
||||
.refine((data) => data.password === data.passwordConfirm, {
|
||||
message: 'Passwords must match',
|
||||
message: 'Contraseñas no coinciden',
|
||||
path: ['passwordConfirm']
|
||||
});
|
||||
|
||||
|
|
@ -80,7 +80,7 @@ function JwtSignUpTab() {
|
|||
<TextField
|
||||
{...field}
|
||||
className="mb-24"
|
||||
label="Display name"
|
||||
label="Nombre de usuario"
|
||||
autoFocus
|
||||
type="name"
|
||||
error={!!errors.displayName}
|
||||
|
|
@ -99,7 +99,7 @@ function JwtSignUpTab() {
|
|||
<TextField
|
||||
{...field}
|
||||
className="mb-24"
|
||||
label="Email"
|
||||
label="Correo electrónico"
|
||||
type="email"
|
||||
error={!!errors.email}
|
||||
helperText={errors?.email?.message}
|
||||
|
|
@ -117,7 +117,7 @@ function JwtSignUpTab() {
|
|||
<TextField
|
||||
{...field}
|
||||
className="mb-24"
|
||||
label="Password"
|
||||
label="Contraseña"
|
||||
type="password"
|
||||
error={!!errors.password}
|
||||
helperText={errors?.password?.message}
|
||||
|
|
@ -135,7 +135,7 @@ function JwtSignUpTab() {
|
|||
<TextField
|
||||
{...field}
|
||||
className="mb-24"
|
||||
label="Password (Confirm)"
|
||||
label="Confirmar contraseña"
|
||||
type="password"
|
||||
error={!!errors.passwordConfirm}
|
||||
helperText={errors?.passwordConfirm?.message}
|
||||
|
|
@ -155,7 +155,7 @@ function JwtSignUpTab() {
|
|||
error={!!errors.acceptTermsConditions}
|
||||
>
|
||||
<FormControlLabel
|
||||
label="I agree to the Terms of Service and Privacy Policy"
|
||||
label="Acepto los términos del servicio y sus políticas internas"
|
||||
control={
|
||||
<Checkbox
|
||||
size="small"
|
||||
|
|
@ -177,7 +177,7 @@ function JwtSignUpTab() {
|
|||
type="submit"
|
||||
size="large"
|
||||
>
|
||||
Create your free account
|
||||
Registrarse
|
||||
</Button>
|
||||
</form>
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in New Issue