1
0
mirror of https://github.com/tooot-app/app synced 2025-06-05 22:19:13 +02:00
This commit is contained in:
xmflsct
2022-11-29 23:44:11 +01:00
parent 75800598c2
commit de7498b218
75 changed files with 289 additions and 1421 deletions

View File

@ -1,4 +1,3 @@
import analytics from '@components/analytics'
import Button from '@components/Button'
import Icon from '@components/Icon'
import { MenuContainer, MenuRow } from '@components/Menu'
@ -28,10 +27,7 @@ import { useSelector } from 'react-redux'
const TabMePush: React.FC = () => {
const { colors } = useTheme()
const { t } = useTranslation('screenTabs')
const instanceAccount = useSelector(
getInstanceAccount,
(prev, next) => prev?.acct === next?.acct
)
const instanceAccount = useSelector(getInstanceAccount, (prev, next) => prev?.acct === next?.acct)
const instanceUri = useSelector(getInstanceUri)
const dispatch = useAppDispatch()
@ -70,15 +66,7 @@ const TabMePush: React.FC = () => {
const alerts = useMemo(() => {
return instancePush?.alerts
? (
[
'follow',
'follow_request',
'favourite',
'reblog',
'mention',
'poll',
'status'
] as [
['follow', 'follow_request', 'favourite', 'reblog', 'mention', 'poll', 'status'] as [
'follow',
'follow_request',
'favourite',
@ -91,15 +79,9 @@ const TabMePush: React.FC = () => {
<MenuRow
key={alert}
title={t(`me.push.${alert}.heading`)}
switchDisabled={
!pushEnabled || !instancePush.global.value || isLoading
}
switchDisabled={!pushEnabled || !instancePush.global.value || isLoading}
switchValue={instancePush?.alerts[alert].value}
switchOnValueChange={() => {
analytics(`me_push_${alert}`, {
current: instancePush?.alerts[alert].value,
new: !instancePush?.alerts[alert].value
})
switchOnValueChange={() =>
dispatch(
updateInstancePushAlert({
changed: alert,
@ -112,7 +94,7 @@ const TabMePush: React.FC = () => {
}
})
)
}}
}
/>
))
: null
@ -127,23 +109,18 @@ const TabMePush: React.FC = () => {
<Button
type='text'
content={
pushCanAskAgain
? t('me.push.enable.direct')
: t('me.push.enable.settings')
pushCanAskAgain ? t('me.push.enable.direct') : t('me.push.enable.settings')
}
style={{
marginTop: StyleConstants.Spacing.Global.PagePadding,
marginHorizontal:
StyleConstants.Spacing.Global.PagePadding * 2
marginHorizontal: StyleConstants.Spacing.Global.PagePadding * 2
}}
onPress={async () => {
if (pushCanAskAgain) {
analytics('me_push_enabled_dialogue')
const result = await Notifications.requestPermissionsAsync()
setPushEnabled(result.granted)
setPushCanAskAgain(result.canAskAgain)
} else {
analytics('me_push_enabled_setting')
Linking.openSettings()
}
}}
@ -158,16 +135,8 @@ const TabMePush: React.FC = () => {
description={t('me.push.global.description')}
loading={instancePush?.global.loading}
switchDisabled={!pushEnabled || isLoading}
switchValue={
pushEnabled === false ? false : instancePush?.global.value
}
switchOnValueChange={() => {
analytics('me_push_global', {
current: instancePush?.global.value,
new: !instancePush?.global.value
})
dispatch(updateInstancePush(!instancePush?.global.value))
}}
switchValue={pushEnabled === false ? false : instancePush?.global.value}
switchOnValueChange={() => dispatch(updateInstancePush(!instancePush?.global.value))}
/>
</MenuContainer>
<MenuContainer>
@ -175,25 +144,16 @@ const TabMePush: React.FC = () => {
title={t('me.push.decode.heading')}
description={t('me.push.decode.description')}
loading={instancePush?.decode.loading}
switchDisabled={
!pushEnabled || !instancePush?.global.value || isLoading
}
switchDisabled={!pushEnabled || !instancePush?.global.value || isLoading}
switchValue={instancePush?.decode.value}
switchOnValueChange={() => {
analytics('me_push_decode', {
current: instancePush?.decode.value,
new: !instancePush?.decode.value
})
switchOnValueChange={() =>
dispatch(updateInstancePushDecode(!instancePush?.decode.value))
}}
}
/>
<MenuRow
title={t('me.push.howitworks')}
iconBack='ExternalLink'
onPress={() => {
analytics('me_push_howitworks')
WebBrowser.openBrowserAsync('https://tooot.app/how-push-works')
}}
onPress={() => WebBrowser.openBrowserAsync('https://tooot.app/how-push-works')}
/>
</MenuContainer>
<MenuContainer>{alerts}</MenuContainer>
@ -207,11 +167,7 @@ const TabMePush: React.FC = () => {
alignItems: 'center'
}}
>
<Icon
name='Frown'
size={StyleConstants.Font.Size.L}
color={colors.primaryDefault}
/>
<Icon name='Frown' size={StyleConstants.Font.Size.L} color={colors.primaryDefault} />
<CustomText fontStyle='M' style={{ color: colors.primaryDefault }}>
{t('me.push.notAvailable')}
</CustomText>