import React from 'react'; import { SafeAreaView, StyleSheet, ScrollView, View, Text, StatusBar, FlatList, TouchableOpacity, } from 'react-native'; import { Header, LearnMoreLinks, Colors, DebugInstructions, ReloadInstructions, } from 'react-native/Libraries/NewAppScreen'; import styles from './styles/liststyles' import { url } from './resources/fetchInfo.json' const Announcement = ({item}) => { const date = new Date const dateStr = `${date.getMonth()+1}/${date.getDate()}/${date.getFullYear()}` const dateInfo = dateStr===item.item.date&&item.item.time!==undefined?item.item.time:item.item.date; console.log(dateStr) return ( {dateInfo!==undefined?{dateInfo}:<>} {item.item.message} ) } export const TeacherList = ({route}) => { return } keyExtractor={item=>JSON.stringify(item)} /> } function TeacherButton(props) { return ( props.navigation.navigate('TeacherList',{data:props.data,name:props.name})} activeOpacity={0.8}> {props.name} ) } class Announcements extends React.Component { constructor(props) { super(props) this.state = { data: [], teacherNames: [], isLoading:true } } componentDidMount() { fetch(`${url}/api/en/announcements`,{ headers: { 'Cache-Control': 'no-cache' } } ) .then((response) => { return response.text() }) .then((txt) => { const data = JSON.parse(txt).data; const teacherNames = [...new Set(data.filter(x=>x.teacher!=null&&x.teacher.trim()!=='').map(x=>x.teacher))]; teacherNames.sort() this.setState({data: data, teacherNames: teacherNames.map(x=>({name:x})),isLoading:false}); }) .catch((error) => console.error(error)) } render() { if (this.state.isLoading) return <> return ( x.teacher==null||x.teacher.trim()==='')} name="No Teacher" navigation={this.props.navigation}/> x.teacher===item.name)} name={item.name} navigation={this.props.navigation}/>} keyExtractor={(item,index)=>item.name+index} /> ) } } export default Announcements;