apiurl-fix+modal-fmt
This commit is contained in:
parent
c6ae893403
commit
4c7839aaff
|
@ -30,8 +30,8 @@ export type AuthModalSearchParams = {
|
||||||
}
|
}
|
||||||
|
|
||||||
const AUTH_MODAL_MODES: Record<AuthModalMode, Component> = {
|
const AUTH_MODAL_MODES: Record<AuthModalMode, Component> = {
|
||||||
'login': LoginForm,
|
login: LoginForm,
|
||||||
'register': RegisterForm,
|
register: RegisterForm,
|
||||||
'send-reset-link': SendResetLinkForm,
|
'send-reset-link': SendResetLinkForm,
|
||||||
'confirm-email': EmailConfirm,
|
'confirm-email': EmailConfirm,
|
||||||
'send-confirm-email': SendEmailConfirm,
|
'send-confirm-email': SendEmailConfirm,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { createSignal } from "solid-js"
|
import { createSignal } from 'solid-js'
|
||||||
import { Show } from "solid-js/web"
|
import { Show } from 'solid-js/web'
|
||||||
import { useLocalize } from "~/context/localize"
|
import { useLocalize } from '~/context/localize'
|
||||||
|
|
||||||
export const ConnectView = () => {
|
export const ConnectView = () => {
|
||||||
const { t } = useLocalize()
|
const { t } = useLocalize()
|
||||||
|
@ -11,17 +11,19 @@ export const ConnectView = () => {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
setState('loading')
|
setState('loading')
|
||||||
|
|
||||||
const postData = formRef? Array.from(formRef.elements).reduce(
|
const postData = formRef
|
||||||
(acc, element) => {
|
? Array.from(formRef.elements).reduce(
|
||||||
const formField = element as unknown as { name: string; value: string }
|
(acc, element) => {
|
||||||
if (formField.name) {
|
const formField = element as unknown as { name: string; value: string }
|
||||||
acc[formField.name] = formField.value
|
if (formField.name) {
|
||||||
}
|
acc[formField.name] = formField.value
|
||||||
|
}
|
||||||
|
|
||||||
return acc
|
return acc
|
||||||
},
|
},
|
||||||
{} as Record<string, string>,
|
{} as Record<string, string>,
|
||||||
) : {}
|
)
|
||||||
|
: {}
|
||||||
|
|
||||||
const requestOptions = {
|
const requestOptions = {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
|
@ -45,53 +47,59 @@ export const ConnectView = () => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
return (<article class="wide-container container--static-page">
|
return (
|
||||||
<div class="row">
|
<article class="wide-container container--static-page">
|
||||||
<div class="col-sm-20 col-md-16 col-lg-14 col-xl-12 offset-md-5">
|
<div class="row">
|
||||||
<Show when={state() === 'loading' || state() === 'initial' || state() === 'error'}>
|
<div class="col-sm-20 col-md-16 col-lg-14 col-xl-12 offset-md-5">
|
||||||
<h1>
|
<Show when={state() === 'loading' || state() === 'initial' || state() === 'error'}>
|
||||||
<span class="wrapped">{t('Suggest an idea')}</span>
|
<h1>
|
||||||
</h1>
|
<span class="wrapped">{t('Suggest an idea')}</span>
|
||||||
|
</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
{t('Want to suggest, discuss or advise something? Share a topic or an idea? Please send us a message!')}
|
{t(
|
||||||
{t('Specify your e-mail and we will reply.')}
|
'Want to suggest, discuss or advise something? Share a topic or an idea? Please send us a message!',
|
||||||
</p>
|
)}
|
||||||
|
{t('Specify your e-mail and we will reply.')}
|
||||||
|
</p>
|
||||||
|
|
||||||
<form onSubmit={handleFormSubmit} ref={(el) => (formRef = el)}>
|
<form onSubmit={handleFormSubmit} ref={(el) => (formRef = el)}>
|
||||||
<div class="pretty-form__item">
|
<div class="pretty-form__item">
|
||||||
<select name="subject" disabled={state() === 'loading'}>
|
<select name="subject" disabled={state() === 'loading'}>
|
||||||
<option value={t('Collaborate')} selected>{t('Collaborate')}</option>
|
<option value={t('Collaborate')} selected>
|
||||||
<option value={t('Recommend some new topic')}>{t('Recommend some new topic')}</option>
|
{t('Collaborate')}
|
||||||
<option value={t('Report an error')}>{t('Report an error')}</option>
|
</option>
|
||||||
<option value={t('Volounteering')}>{t('Volounteering')}</option>
|
<option value={t('Recommend some new topic')}>{t('Recommend some new topic')}</option>
|
||||||
<option value={t('Anything else')}>{t('Anything else')}</option>
|
<option value={t('Report an error')}>{t('Report an error')}</option>
|
||||||
</select>
|
<option value={t('Volounteering')}>{t('Volounteering')}</option>
|
||||||
</div>
|
<option value={t('Anything else')}>{t('Anything else')}</option>
|
||||||
<div class="pretty-form__item">
|
</select>
|
||||||
<input
|
</div>
|
||||||
type="email"
|
<div class="pretty-form__item">
|
||||||
name="contact"
|
<input
|
||||||
placeholder={t('Your contact for answer')}
|
type="email"
|
||||||
disabled={state() === 'loading'}
|
name="contact"
|
||||||
/>
|
placeholder={t('Your contact for answer')}
|
||||||
<label for="contact-email">{t('Your contact for answer')}</label>
|
disabled={state() === 'loading'}
|
||||||
</div>
|
/>
|
||||||
<div class="pretty-form__item">
|
<label for="contact-email">{t('Your contact for answer')}</label>
|
||||||
<textarea name="message" placeholder={t('Message text')} disabled={state() === 'loading'} />
|
</div>
|
||||||
<label for="message">{t('Message text')}</label>
|
<div class="pretty-form__item">
|
||||||
</div>
|
<textarea name="message" placeholder={t('Message text')} disabled={state() === 'loading'} />
|
||||||
<button class="button" disabled={state() === 'loading'} type="submit">
|
<label for="message">{t('Message text')}</label>
|
||||||
{t('Send')}
|
</div>
|
||||||
</button>
|
<button class="button" disabled={state() === 'loading'} type="submit">
|
||||||
</form>
|
{t('Send')}
|
||||||
</Show>
|
</button>
|
||||||
<Show when={state() === 'error'}>
|
</form>
|
||||||
<br />
|
</Show>
|
||||||
{t('Something went wrong, please try again')}
|
<Show when={state() === 'error'}>
|
||||||
</Show>
|
<br />
|
||||||
<Show when={state() === 'success'}>{t('Thank you for reaching us')}!</Show>
|
{t('Something went wrong, please try again')}
|
||||||
</div>
|
</Show>
|
||||||
</div>
|
<Show when={state() === 'success'}>{t('Thank you for reaching us')}!</Show>
|
||||||
</article>)
|
</div>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@ export const isDev = import.meta.env.MODE === 'development'
|
||||||
export const cdnUrl = 'https://cdn.discours.io'
|
export const cdnUrl = 'https://cdn.discours.io'
|
||||||
export const thumborUrl = import.meta.env.PUBLIC_THUMBOR_URL || 'https://images.discours.io'
|
export const thumborUrl = import.meta.env.PUBLIC_THUMBOR_URL || 'https://images.discours.io'
|
||||||
export const reportDsn = import.meta.env.PUBLIC_GLITCHTIP_DSN || import.meta.env.PUBLIC_SENTRY_DSN || ''
|
export const reportDsn = import.meta.env.PUBLIC_GLITCHTIP_DSN || import.meta.env.PUBLIC_SENTRY_DSN || ''
|
||||||
export const coreApiUrl = import.meta.env.PUBLIC_API_BASE || 'https://core.discours.io'
|
export const coreApiUrl = import.meta.env.PUBLIC_CORE_API || 'https://core.discours.io'
|
||||||
export const chatApiUrl = import.meta.env.PUBLIC_CHAT_API || 'https://inbox.discours.io'
|
export const chatApiUrl = import.meta.env.PUBLIC_CHAT_API || 'https://inbox.discours.io'
|
||||||
export const authApiUrl = import.meta.env.PUBLIC_AUTH_API || 'https://auth.discours.io/graphql'
|
export const authApiUrl = import.meta.env.PUBLIC_AUTH_API || 'https://auth.discours.io/graphql'
|
||||||
export const sseUrl = import.meta.env.PUBLIC_REALTIME_EVENTS || 'https://connect.discours.io'
|
export const sseUrl = import.meta.env.PUBLIC_REALTIME_EVENTS || 'https://connect.discours.io'
|
||||||
|
|
|
@ -127,7 +127,7 @@ type ConfirmMessage = {
|
||||||
}
|
}
|
||||||
|
|
||||||
type UIContextType = {
|
type UIContextType = {
|
||||||
modal: Accessor<ModalType|null>
|
modal: Accessor<ModalType | null>
|
||||||
showModal: (m: ModalType, source?: AuthModalSource) => void
|
showModal: (m: ModalType, source?: AuthModalSource) => void
|
||||||
hideModal: () => void
|
hideModal: () => void
|
||||||
confirmMessage: Accessor<ConfirmMessage>
|
confirmMessage: Accessor<ConfirmMessage>
|
||||||
|
@ -143,7 +143,7 @@ export function useUI() {
|
||||||
|
|
||||||
export const UIProvider = (props: { children: JSX.Element }) => {
|
export const UIProvider = (props: { children: JSX.Element }) => {
|
||||||
const [, setSearchParams] = useSearchParams<Record<string, string>>()
|
const [, setSearchParams] = useSearchParams<Record<string, string>>()
|
||||||
const [modal, setModal] = createSignal<ModalType|null>(null)
|
const [modal, setModal] = createSignal<ModalType | null>(null)
|
||||||
const [confirmMessage, setConfirmMessage] = createSignal<ConfirmMessage>({} as ConfirmMessage)
|
const [confirmMessage, setConfirmMessage] = createSignal<ConfirmMessage>({} as ConfirmMessage)
|
||||||
|
|
||||||
let resolveFn: (value: boolean) => void
|
let resolveFn: (value: boolean) => void
|
||||||
|
@ -173,8 +173,8 @@ export const UIProvider = (props: { children: JSX.Element }) => {
|
||||||
|
|
||||||
const hideModal = () => {
|
const hideModal = () => {
|
||||||
console.log('[context.ui] hideModal()', modal())
|
console.log('[context.ui] hideModal()', modal())
|
||||||
setTimeout(() => setModal(null), 1) // NOTE: modal rerender fix
|
setTimeout(() => setModal(null), 1) // NOTE: modal rerender fix
|
||||||
setSearchParams({source: undefined, m: undefined, mode: undefined})
|
setSearchParams({ source: undefined, m: undefined, mode: undefined })
|
||||||
}
|
}
|
||||||
|
|
||||||
const [searchParams] = useSearchParams()
|
const [searchParams] = useSearchParams()
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
export const isDev = import.meta.env.MODE === 'development'
|
|
||||||
export const cdnUrl = 'https://cdn.discours.io'
|
|
||||||
export const thumborUrl = import.meta.env.PUBLIC_THUMBOR_URL || 'https://images.discours.io'
|
|
||||||
export const reportDsn = import.meta.env.PUBLIC_GLITCHTIP_DSN || import.meta.env.PUBLIC_SENTRY_DSN || ''
|
|
||||||
export const coreApiUrl = import.meta.env.PUBLIC_API_BASE || 'https://core.discours.io'
|
|
||||||
export const chatApiUrl = import.meta.env.PUBLIC_CHAT_API || 'https://inbox.discours.io'
|
|
||||||
export const authApiUrl = import.meta.env.PUBLIC_AUTH_API || 'https://auth.discours.io/graphql'
|
|
||||||
export const sseUrl = import.meta.env.PUBLIC_REALTIME_EVENTS || 'https://connect.discours.io'
|
|
Loading…
Reference in New Issue
Block a user