1
0
mirror of https://github.com/tooot-app/app synced 2025-06-05 22:19:13 +02:00

Draft basic done

#6
This commit is contained in:
Zhiyuan Zheng
2021-02-07 00:39:11 +01:00
parent 700b9ad433
commit 03dc94c7c9
32 changed files with 684 additions and 170 deletions

View File

@ -6,7 +6,7 @@ import TimeAgo from 'react-timeago'
import buildFormatter from 'react-timeago/lib/formatters/buildFormatter'
export interface Props {
date: string
date: string | number
}
const RelativeTime: React.FC<Props> = ({ date }) => {

View File

@ -1,8 +1,7 @@
import ComponentSeparator from '@components/Separator'
import { useNavigation, useScrollToTop } from '@react-navigation/native'
import { QueryKeyTimeline, useTimelineQuery } from '@utils/queryHooks/timeline'
import { getPublicRemoteNotice } from '@utils/slices/contextsSlice'
import { localUpdateNotification } from '@utils/slices/instancesSlice'
import { updateLocalNotification } from '@utils/slices/instancesSlice'
import { StyleConstants } from '@utils/styles/constants'
import { findIndex } from 'lodash'
import React, { useCallback, useEffect, useMemo, useRef } from 'react'
@ -13,7 +12,7 @@ import {
StyleSheet
} from 'react-native'
import { FlatList } from 'react-native-gesture-handler'
import { useDispatch, useSelector } from 'react-redux'
import { useDispatch } from 'react-redux'
import TimelineConversation from './Timeline/Conversation'
import TimelineDefault from './Timeline/Default'
import TimelineEmpty from './Timeline/Empty'
@ -85,7 +84,7 @@ const Timeline: React.FC<Props> = ({
if (props.target && props.target.includes('Tab-Notifications-Root')) {
if (flattenData.length) {
dispatch(
localUpdateNotification({
updateLocalNotification({
latestTime: (flattenData[0] as Mastodon.Notification).created_at
})
)
@ -197,8 +196,6 @@ const Timeline: React.FC<Props> = ({
)
}, [])
const publicRemoteNotice = useSelector(getPublicRemoteNotice).hidden
useScrollToTop(flRef)
return (

View File

@ -33,7 +33,7 @@ const TimelineAttachment: React.FC<Props> = ({ status }) => {
haptics('Light')
}, [])
let imageUrls: (IImageInfo & {
let imageUrls: (App.IImageInfo & {
preview_url: Mastodon.AttachmentImage['preview_url']
remote_url?: Mastodon.AttachmentImage['remote_url']
imageIndex: number

View File

@ -34,12 +34,7 @@ const TimelineHeaderDefault: React.FC<Props> = ({ queryKey, status }) => {
{queryKey ? (
<Pressable
style={{
flex: 1,
flexDirection: 'row',
justifyContent: 'center',
paddingBottom: StyleConstants.Spacing.S
}}
style={styles.action}
onPress={() =>
navigation.navigate('Screen-Actions', {
queryKey,
@ -77,6 +72,12 @@ const styles = StyleSheet.create({
},
created_at: {
...StyleConstants.FontStyle.S
},
action: {
flex: 1,
flexDirection: 'row',
justifyContent: 'center',
paddingBottom: StyleConstants.Spacing.S
}
})

View File

@ -5,18 +5,21 @@ import React from 'react'
import { StyleSheet, Text } from 'react-native'
export interface Props {
created_at: Mastodon.Status['created_at']
created_at: Mastodon.Status['created_at'] | number
}
const HeaderSharedCreated: React.FC<Props> = ({ created_at }) => {
const { theme } = useTheme()
const HeaderSharedCreated = React.memo(
({ created_at }: Props) => {
const { theme } = useTheme()
return (
<Text style={[styles.created_at, { color: theme.secondary }]}>
<RelativeTime date={created_at} />
</Text>
)
}
return (
<Text style={[styles.created_at, { color: theme.secondary }]}>
<RelativeTime date={created_at} />
</Text>
)
},
() => true
)
const styles = StyleSheet.create({
created_at: {
@ -24,4 +27,4 @@ const styles = StyleSheet.create({
}
})
export default React.memo(HeaderSharedCreated, () => true)
export default HeaderSharedCreated