Skip to content

Commit 3e15444

Browse files
committed
show disabled form for logged out users
1 parent 3b15813 commit 3e15444

File tree

3 files changed

+59
-51
lines changed

3 files changed

+59
-51
lines changed

pages/requests/new/[ware].js

Lines changed: 57 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ const NewRequest = ({ session }) => {
2828
const wareID = router.query.id
2929
const { dynamicForm, isLoadingInitialRequest, isInitialRequestError } = useInitializeRequest(wareID, accessToken)
3030
const oneWeekFromNow = addDays((new Date()), 7).toISOString().slice(0, 10)
31+
const disabled = session === null ? true : false
3132
const initialFormData = { 'suppliers_identified': 'Yes' }
3233
const initialState = {
3334
billingSameAsShipping: false,
@@ -80,7 +81,6 @@ const NewRequest = ({ session }) => {
8081
* using a guard clause with an early return inside the api methods also violates the react-hooks/rules-of-hooks rule.
8182
*/
8283
if (session === undefined) return pageLoading
83-
if (session === null) return unauthorizedUser
8484

8585
/**
8686
* @param {object} event onChange event
@@ -169,45 +169,62 @@ const NewRequest = ({ session }) => {
169169
}
170170

171171
return(
172-
<div className='container'>
173-
<Title title={dynamicForm.name || ''} addClass='my-4' />
174-
{dynamicForm.schema ? (
175-
<Form
176-
formData={formData}
177-
onChange={e => setFormData(e.formData)}
178-
onSubmit={handleSubmit}
179-
schema={dynamicForm.schema}
180-
uiSchema={dynamicForm.uiSchema}
181-
validator={validator}
182-
>
183-
<StandardRequestOptions
184-
defaultRequiredDate={oneWeekFromNow}
185-
requestForm={requestForm}
186-
updateRequestForm={updateRequestForm}
187-
buttonDisabled={buttonDisabled}
188-
/>
189-
</Form>
190-
) : (
191-
<BsForm
192-
onSubmit={handleSubmit}
193-
id={`new-${wareID}-request-form`}
194-
noValidate
195-
validated={validated}
196-
>
197-
<BlankRequestForm updateRequestForm={updateRequestForm} />
198-
<StandardRequestOptions
199-
defaultRequiredDate={oneWeekFromNow}
200-
requestForm={requestForm}
201-
updateRequestForm={updateRequestForm}
202-
buttonDisabled={buttonDisabled}
203-
/>
204-
</BsForm>
205-
)}
206-
</div>
172+
<>
173+
{disabled &&
174+
<Notice
175+
addClass='mt-5'
176+
alert={{
177+
body: ['To proceed with making a request, please log in to your account.'],
178+
title: 'Sign in required',
179+
variant: 'info'
180+
}}
181+
dismissible={false}
182+
/>
183+
}
184+
<div className='container'>
185+
<Title title={dynamicForm.name || ''} addClass='my-4' />
186+
{dynamicForm.schema ? (
187+
<Form
188+
formData={formData}
189+
onChange={e => setFormData(e.formData)}
190+
onSubmit={handleSubmit}
191+
schema={dynamicForm.schema}
192+
uiSchema={dynamicForm.uiSchema}
193+
validator={validator}
194+
disabled={disabled}
195+
>
196+
<StandardRequestOptions
197+
defaultRequiredDate={oneWeekFromNow}
198+
requestForm={requestForm}
199+
updateRequestForm={updateRequestForm}
200+
buttonDisabled={buttonDisabled || disabled}
201+
disabled={disabled}
202+
/>
203+
</Form>
204+
) : (
205+
<BsForm
206+
onSubmit={handleSubmit}
207+
id={`new-${wareID}-request-form`}
208+
noValidate
209+
validated={validated}
210+
disabled={disabled}
211+
>
212+
<BlankRequestForm updateRequestForm={updateRequestForm} />
213+
<StandardRequestOptions
214+
defaultRequiredDate={oneWeekFromNow}
215+
requestForm={requestForm}
216+
updateRequestForm={updateRequestForm}
217+
buttonDisabled={buttonDisabled || disabled}
218+
disabled={disabled}
219+
/>
220+
</BsForm>
221+
)}
222+
</div>
223+
</>
207224
)
208225
}
209226

210-
const StandardRequestOptions = ({ buttonDisabled, defaultRequiredDate, requestForm, updateRequestForm, }) => {
227+
const StandardRequestOptions = ({ buttonDisabled, defaultRequiredDate, requestForm, updateRequestForm, disabled }) => {
211228
return (
212229
<>
213230
<div className='row'>
@@ -217,20 +234,22 @@ const StandardRequestOptions = ({ buttonDisabled, defaultRequiredDate, requestFo
217234
billingCountry={requestForm.billing.country}
218235
shippingCountry={requestForm.shipping.country}
219236
updateRequestForm={updateRequestForm}
237+
disabled={disabled}
220238
/>
221239
</div>
222240
<div className='col'>
223241
<AdditionalInfo
224242
updateRequestForm={updateRequestForm}
225243
defaultRequiredDate={defaultRequiredDate}
226244
backgroundColor={requestFormHeaderBg}
245+
disabled={disabled}
227246
/>
228247
</div>
229248
</div>
230249
<Button
231250
addClass='btn btn-primary my-4 ms-auto d-block'
232251
backgroundColor={buttonBg}
233-
disabled={buttonDisabled}
252+
disabled={buttonDisabled || disabled}
234253
label='Initiate Request'
235254
type='submit'
236255
size='large'
@@ -241,16 +260,5 @@ const StandardRequestOptions = ({ buttonDisabled, defaultRequiredDate, requestFo
241260

242261
const pageLoading = <Loading wrapperClass='item-page mt-5' />
243262

244-
const unauthorizedUser = (
245-
<Notice
246-
addClass='my-5'
247-
alert={{
248-
body: ['Please log in to make new requests.'],
249-
title: 'Unauthorized',
250-
variant: 'info'
251-
}}
252-
dismissible={false}
253-
/>
254-
)
255263

256264
export default NewRequest

utils/api/requests.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ export const useFiles = (id, accessToken) => {
119119
}
120120

121121
export const useInitializeRequest = (id, accessToken) => {
122-
const { data, error } = useSWR(accessToken ? [`/wares/${id}/quote_groups/new.json`, accessToken] : null)
122+
const { data, error } = useSWR(id ? [`/wares/${id}/quote_groups/new.json`, accessToken] : null)
123123
let dynamicForm = { name: data?.name }
124124
let dynamicFormInfo = data?.dynamic_forms[0]
125125

utils/theme/theme.module.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ $secondary: #936AAA;
55
$light: #F2F2F2;
66
$dark: #070818;
77
$success: #B0E298;
8-
$info: #FFFBA6;
8+
$info: #8eb3fc;
99
$warning: #E9DF00;
1010
$danger: #D20000;
1111
$black: #000000;

0 commit comments

Comments
 (0)