apiurl-fix+modal-fmt

This commit is contained in:
Untone 2024-06-25 22:56:42 +03:00
parent c6ae893403
commit 4c7839aaff
5 changed files with 75 additions and 75 deletions

View File

@ -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,

View File

@ -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>
)
} }

View File

@ -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'

View File

@ -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()

View File

@ -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'