mirror of
https://github.com/tooot-app/app
synced 2025-02-27 09:07:51 +01:00
When replying to CW content, CW will be added
This commit is contained in:
parent
f3fa6bc662
commit
4eea2bf58c
@ -1,4 +1,3 @@
|
|||||||
import apiInstance from '@api/instance'
|
|
||||||
import { toast, toastConfig } from '@components/toast'
|
import { toast, toastConfig } from '@components/toast'
|
||||||
import {
|
import {
|
||||||
NavigationContainer,
|
NavigationContainer,
|
||||||
@ -9,6 +8,7 @@ import ScreenAnnouncements from '@screens/Announcements'
|
|||||||
import ScreenCompose from '@screens/Compose'
|
import ScreenCompose from '@screens/Compose'
|
||||||
import ScreenImagesViewer from '@screens/ImagesViewer'
|
import ScreenImagesViewer from '@screens/ImagesViewer'
|
||||||
import ScreenTabs from '@screens/Tabs'
|
import ScreenTabs from '@screens/Tabs'
|
||||||
|
import { useAnnouncementQuery } from '@utils/queryHooks/announcement'
|
||||||
import { updatePreviousTab } from '@utils/slices/contextsSlice'
|
import { updatePreviousTab } from '@utils/slices/contextsSlice'
|
||||||
import { updateAccountPreferences } from '@utils/slices/instances/updateAccountPreferences'
|
import { updateAccountPreferences } from '@utils/slices/instances/updateAccountPreferences'
|
||||||
import { getInstanceActive } from '@utils/slices/instancesSlice'
|
import { getInstanceActive } from '@utils/slices/instancesSlice'
|
||||||
@ -117,28 +117,28 @@ const Screens: React.FC<Props> = ({ localCorrupt }) => {
|
|||||||
}, [localCorrupt])
|
}, [localCorrupt])
|
||||||
|
|
||||||
// On launch check if there is any unread announcements
|
// On launch check if there is any unread announcements
|
||||||
useEffect(() => {
|
useAnnouncementQuery({
|
||||||
instanceActive !== -1 &&
|
showAll: false,
|
||||||
apiInstance<Mastodon.Announcement[]>({
|
options: {
|
||||||
method: 'get',
|
notifyOnChangeProps: [],
|
||||||
url: `announcements`
|
select: announcements =>
|
||||||
})
|
announcements.filter(announcement => !announcement.read),
|
||||||
.then(res => {
|
onSuccess: data => {
|
||||||
if (res.body.filter(announcement => !announcement.read).length) {
|
if (data.length) {
|
||||||
navigationRef.current?.navigate('Screen-Announcements', {
|
navigationRef.current?.navigate('Screen-Announcements', {
|
||||||
showAll: false
|
showAll: false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
.catch(() => {})
|
}
|
||||||
}, [])
|
})
|
||||||
|
|
||||||
// Lazily update users's preferences, for e.g. composing default visibility
|
// Lazily update users's preferences, for e.g. composing default visibility
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (instanceActive !== -1) {
|
if (instanceActive !== -1) {
|
||||||
dispatch(updateAccountPreferences())
|
dispatch(updateAccountPreferences())
|
||||||
}
|
}
|
||||||
}, [])
|
}, [instanceActive])
|
||||||
|
|
||||||
// Callbacks
|
// Callbacks
|
||||||
const navigationContainerOnReady = useCallback(
|
const navigationContainerOnReady = useCallback(
|
||||||
|
@ -28,7 +28,8 @@ const HeaderCenter = React.memo(
|
|||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
text: {
|
text: {
|
||||||
...StyleConstants.FontStyle.M
|
fontSize: 18,
|
||||||
|
fontWeight: StyleConstants.Font.Weight.Bold
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -204,13 +204,13 @@ const ScreenAnnouncements: React.FC<ScreenAnnouncementsProp> = ({
|
|||||||
style={styles.base}
|
style={styles.base}
|
||||||
reducedTransparencyFallbackColor={theme.background}
|
reducedTransparencyFallbackColor={theme.background}
|
||||||
>
|
>
|
||||||
<SafeAreaView style={styles.base} edges={['bottom']}>
|
<SafeAreaView style={styles.base}>
|
||||||
<View
|
<View
|
||||||
style={{
|
style={{
|
||||||
flex: 1,
|
|
||||||
flexDirection: 'row',
|
flexDirection: 'row',
|
||||||
justifyContent: 'space-between',
|
justifyContent: 'space-between',
|
||||||
alignItems: 'center'
|
alignItems: 'center',
|
||||||
|
flexBasis: 44
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<HeaderLeft
|
<HeaderLeft
|
||||||
@ -236,7 +236,7 @@ const ScreenAnnouncements: React.FC<ScreenAnnouncementsProp> = ({
|
|||||||
onMomentumScrollEnd={onMomentumScrollEnd}
|
onMomentumScrollEnd={onMomentumScrollEnd}
|
||||||
ListEmptyComponent={ListEmptyComponent}
|
ListEmptyComponent={ListEmptyComponent}
|
||||||
/>
|
/>
|
||||||
<View style={[styles.indicators]}>
|
<View style={styles.indicators}>
|
||||||
{query.data && query.data.length > 1 ? (
|
{query.data && query.data.length > 1 ? (
|
||||||
<>
|
<>
|
||||||
{query.data.map((d, i) => (
|
{query.data.map((d, i) => (
|
||||||
|
@ -145,6 +145,23 @@ const ScreenCompose: React.FC<ScreenComposeProp> = ({
|
|||||||
})
|
})
|
||||||
break
|
break
|
||||||
case 'reply':
|
case 'reply':
|
||||||
|
const actualStatus =
|
||||||
|
params.incomingStatus.reblog || params.incomingStatus
|
||||||
|
if (actualStatus.spoiler_text) {
|
||||||
|
formatText({
|
||||||
|
textInput: 'spoiler',
|
||||||
|
composeDispatch,
|
||||||
|
content: actualStatus.spoiler_text,
|
||||||
|
disableDebounce: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
formatText({
|
||||||
|
textInput: 'text',
|
||||||
|
composeDispatch,
|
||||||
|
content: params.accts.map(acct => `@${acct}`).join(' ') + ' ',
|
||||||
|
disableDebounce: true
|
||||||
|
})
|
||||||
|
break
|
||||||
case 'conversation':
|
case 'conversation':
|
||||||
formatText({
|
formatText({
|
||||||
textInput: 'text',
|
textInput: 'text',
|
||||||
|
@ -39,7 +39,7 @@ const composeParseState = (
|
|||||||
}),
|
}),
|
||||||
visibility:
|
visibility:
|
||||||
params.incomingStatus.visibility ||
|
params.incomingStatus.visibility ||
|
||||||
getInstanceAccount(store.getState()).preferences[
|
getInstanceAccount(store.getState())?.preferences[
|
||||||
'posting:default:visibility'
|
'posting:default:visibility'
|
||||||
] ||
|
] ||
|
||||||
'public',
|
'public',
|
||||||
@ -53,6 +53,9 @@ const composeParseState = (
|
|||||||
...composeInitialState,
|
...composeInitialState,
|
||||||
dirty: true,
|
dirty: true,
|
||||||
timestamp: Date.now(),
|
timestamp: Date.now(),
|
||||||
|
...(actualStatus.spoiler_text && {
|
||||||
|
spoiler: { ...composeInitialState.spoiler, active: true }
|
||||||
|
}),
|
||||||
visibility: actualStatus.visibility,
|
visibility: actualStatus.visibility,
|
||||||
visibilityLock: actualStatus.visibility === 'direct',
|
visibilityLock: actualStatus.visibility === 'direct',
|
||||||
replyToStatus: actualStatus
|
replyToStatus: actualStatus
|
||||||
|
@ -302,7 +302,7 @@ export const getInstanceMaxTootChar = ({
|
|||||||
instances: { instances }
|
instances: { instances }
|
||||||
}: RootState) => {
|
}: RootState) => {
|
||||||
const instanceActive = findInstanceActive(instances)
|
const instanceActive = findInstanceActive(instances)
|
||||||
return instanceActive !== -1 ? instances[instanceActive].max_toot_chars : null
|
return instanceActive !== -1 ? instances[instanceActive].max_toot_chars : 500
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getInstanceAccount = ({ instances: { instances } }: RootState) => {
|
export const getInstanceAccount = ({ instances: { instances } }: RootState) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user