fix(#3100): user mailings page pr fixes

keep-around/9d11a525a1ee745f785976389c40d7a0601133e1
Rakov Roman 3 years ago
parent 77784a4a5a
commit 3fafdca9a8
  1. 2
      src/features/App/AuthenticatedApp.tsx
  2. 10
      src/features/AuthStore/hooks/useAuth.tsx
  3. 170
      src/pages/Mailings/index.tsx

@ -63,7 +63,7 @@ export const AuthenticatedApp = () => {
{/* в Switch как прямой children {/* в Switch как прямой children
можно рендерить только Route или Redirect */} можно рендерить только Route или Redirect */}
<Switch> <Switch>
<Route path={`${PAGES.mailings}`}> <Route path={PAGES.mailings}>
<Mailings /> <Mailings />
</Route> </Route>
<Route path={PAGES.useraccount}> <Route path={PAGES.useraccount}>

@ -205,11 +205,15 @@ export const useAuth = () => {
}, [userManager, storeUser]) }, [userManager, storeUser])
const fetchUserInfo = useCallback(async () => { const fetchUserInfo = useCallback(async () => {
const userInfoFetched = await getUserInfo() try {
const userInfoFetched = await getUserInfo()
setUserInfo(userInfoFetched) setUserInfo(userInfoFetched)
userInfoFetched.language.iso && changeLang(userInfoFetched.language.iso) userInfoFetched.language.iso && changeLang(userInfoFetched.language.iso)
// eslint-disable-next-line no-empty
} catch (error) {}
}, [changeLang]) }, [changeLang])
useEffect(() => { useEffect(() => {

@ -35,21 +35,6 @@ const Mailings = () => {
if (!userInfo) return null if (!userInfo) return null
const {
address_line1,
address_line2,
city,
cityId,
country,
firstname,
is_unsubscribed,
language,
lastname,
phone,
postal_code,
region,
} = { ...userInfo }
const currentYear = format(new Date(), 'Y') const currentYear = format(new Date(), 'Y')
const onUnsubscribe = async (isUnsubscribed: boolean) => { const onUnsubscribe = async (isUnsubscribed: boolean) => {
@ -57,86 +42,83 @@ const Mailings = () => {
setIsReSubscribed(true) setIsReSubscribed(true)
} }
await saveUserInfo({ try {
address_line1, await saveUserInfo({
address_line2, ...userInfo,
city, countryId: userInfo.country?.id!,
cityId, isUnsubscribed,
countryId: country?.id!, language_id: userInfo.language?.id,
firstname, postalCode: userInfo.postal_code,
isUnsubscribed, })
language_id: language?.id, await fetchUserInfo()
lastname,
phone, // eslint-disable-next-line no-empty
postalCode: postal_code, } catch (error) {}
region,
})
await fetchUserInfo()
}
let content
if (is_unsubscribed) {
content = (
<ContentWrapper>
<Title>
<T9n t='you_are_now_unsubscribed' />
</Title>
<br />
<Text>
<T9n t='you_have_been_removed_from_the_inSports_newsletter' />
</Text>
<ButtonsBlock>
<SolidButton onClick={() => onUnsubscribe(false)}>
<T9n t='resubscribe' />
</SolidButton>
<ScLink to={PAGES.home}>
<OutlineButton>
<T9n t='go_to_the_main_page' />
</OutlineButton>
</ScLink>
</ButtonsBlock>
</ContentWrapper>
)
} else {
content = (
<ContentWrapper>
<Title><T9n t='unsubscribe' /></Title>
<br />
<Text>
<T9n t='click_unsubscribe_to_stop_receiving_inSports_emails_to' />
<Email>{' '}{userInfo?.email}</Email>
</Text>
<ButtonsBlock>
<ScLink to={PAGES.home}>
<SolidButton>
<T9n t='cancel' />
</SolidButton>
</ScLink>
<OutlineButton onClick={() => onUnsubscribe(true)}>
<T9n t='unsubscribe' />
</OutlineButton>
</ButtonsBlock>
</ContentWrapper>
)
} }
if (isReSubscribed) { const getContent = () => {
content = ( switch (true) {
<ContentWrapper> case userInfo.is_unsubscribed:
<Title><T9n t='resubscription_successful' /></Title> return (
<br /> <ContentWrapper>
<Text> <Title>
<T9n t='you_have_been_resubscribed_to_inSports_newsletter' /> <T9n t='you_are_now_unsubscribed' />
</Text> </Title>
<ButtonsBlock> <br />
<ScLink to={PAGES.home}> <Text>
<SolidButton> <T9n t='you_have_been_removed_from_the_inSports_newsletter' />
<T9n t='go_to_the_main_page' /> </Text>
</SolidButton> <ButtonsBlock>
</ScLink> <SolidButton onClick={() => onUnsubscribe(false)}>
</ButtonsBlock> <T9n t='resubscribe' />
</ContentWrapper> </SolidButton>
) <ScLink to={PAGES.home}>
<OutlineButton>
<T9n t='go_to_the_main_page' />
</OutlineButton>
</ScLink>
</ButtonsBlock>
</ContentWrapper>
)
case isReSubscribed:
return (
<ContentWrapper>
<Title><T9n t='resubscription_successful' /></Title>
<br />
<Text>
<T9n t='you_have_been_resubscribed_to_inSports_newsletter' />
</Text>
<ButtonsBlock>
<ScLink to={PAGES.home}>
<SolidButton>
<T9n t='go_to_the_main_page' />
</SolidButton>
</ScLink>
</ButtonsBlock>
</ContentWrapper>
)
default:
return (
<ContentWrapper>
<Title><T9n t='unsubscribe' /></Title>
<br />
<Text>
<T9n t='click_unsubscribe_to_stop_receiving_inSports_emails_to' />
<Email>{' '}{userInfo?.email}</Email>
</Text>
<ButtonsBlock>
<ScLink to={PAGES.home}>
<SolidButton>
<T9n t='cancel' />
</SolidButton>
</ScLink>
<OutlineButton onClick={() => onUnsubscribe(true)}>
<T9n t='unsubscribe' />
</OutlineButton>
</ButtonsBlock>
</ContentWrapper>
)
}
} }
return ( return (
@ -147,7 +129,7 @@ const Mailings = () => {
</Link> </Link>
</HeaderWrapper> </HeaderWrapper>
<Body> <Body>
{content} {getContent()}
</Body> </Body>
<Footer> <Footer>
<FooterLogo /> <FooterLogo />

Loading…
Cancel
Save