From d7d71ef59474718e653ccadfc944e816ac59cdb6 Mon Sep 17 00:00:00 2001 From: Emily Liu Date: Thu, 24 Dec 2020 01:35:25 -0500 Subject: [PATCH] finished home pg + other minor stuff --- app/Calendar.js | 22 +- app/Clubs.js | 15 +- app/Home.js | 493 ++++++++++++++++++++++++++++++++----------- app/Staff.js | 16 +- app/assets/dep.png | Bin 0 -> 6629 bytes app/assets/email.png | Bin 0 -> 8079 bytes 6 files changed, 405 insertions(+), 141 deletions(-) create mode 100644 app/assets/dep.png create mode 100644 app/assets/email.png diff --git a/app/Calendar.js b/app/Calendar.js index 8ee5bc7..408658e 100644 --- a/app/Calendar.js +++ b/app/Calendar.js @@ -25,23 +25,29 @@ const getCurrentDate=()=>{ var month = new Date().getMonth() + 1; var year = new Date().getFullYear(); - return year + '-' + month + '-' + date; + return year + ',' + month + ',' + date; +} +const getWeekDate=()=>{ + var date = new Date().getDate()-8; + var month = new Date().getMonth()+1; + var year = new Date().getFullYear(); + + return year + ',' + month + ',' + date; } const Event = ({item}) => { const [visible, setVisible] = useState(false) - const date = item.item.date.split('-') const today = new Date(getCurrentDate()) - const week = new Date().setDate(new Date().getDate() - 8) const itemDate = new Date(item.item.date) - + const week = new Date(getWeekDate()) const extra = ( <> {item.item.text} Location: {item.item.location} ) - if (itemDate >= today) { + + if (itemDate.getTime() >= today.getTime()) { return ( setVisible(!visible)} activeOpacity={0.8}> @@ -50,14 +56,14 @@ const Event = ({item}) => { {item.item.title} - {`${date[1]}/${date[2]}/${date[0]}`} + {item.item.date} {visible?extra:<>} ) } - else if (itemDate >= week){ + else if (itemDate.getTime() >= week.getTime()){ return ( setVisible(!visible)} activeOpacity={0.8}> @@ -66,7 +72,7 @@ const Event = ({item}) => { {item.item.title} - {`${date[1]}/${date[2]}/${date[0]}`} + {item.item.date} {visible?extra:<>} diff --git a/app/Clubs.js b/app/Clubs.js index b3589d3..8988245 100644 --- a/app/Clubs.js +++ b/app/Clubs.js @@ -36,15 +36,15 @@ export const ClubInfo = ({route}) => { return ( - Meeting Time and Day: + Meeting Time and Day: {item.meeting} - Zoom Link: + Zoom Link: Linking.openURL(item.link)}>{item.link} - Sponsor: + Sponsor: {item.sponsor} @@ -65,6 +65,11 @@ function ClubElement (props) { ) } +const background = () + function Club () { return ( @@ -81,8 +86,8 @@ function Club () { component = {ClubInfo} options={({route})=>({ title:route.params.name, - headerTitleStyle:[morestyles.headerTitle,{alignSelf:'center'}], - headerRight:()=>(<>) + headerTitleStyle:[morestyles.headerTitle,{alignSelf:'center'}], + headerBackground: ()=>background })} /> diff --git a/app/Home.js b/app/Home.js index 2ad3df1..8ba771c 100644 --- a/app/Home.js +++ b/app/Home.js @@ -10,6 +10,7 @@ import { TouchableHighlight, Image, FlatList, + Linking, } from 'react-native'; import { @@ -27,58 +28,227 @@ import StudentWeek from './StudentWeek'; import { TouchableOpacity } from 'react-native-gesture-handler'; import { NavigationContainer } from '@react-navigation/native' import { createStackNavigator } from '@react-navigation/stack' -import Calendar from './Calendar'; +import Announcements from './Announcements' import AsyncStorage from '@react-native-community/async-storage' -const STORAGE_KEY = "teacherAnnouncements" -const Stack = createStackNavigator() const getCurrentDate=()=>{ var date = new Date().getDate(); var month = new Date().getMonth() + 1; var year = new Date().getFullYear(); - return year + '-' + month + '-' + date; + return year + ',' + month + ',' + date; +} +const getWeekDate=()=>{ + var date = new Date().getDate()-8; + var month = new Date().getMonth()+1; + var year = new Date().getFullYear(); + + return year + ',' + month + ',' + date; } -const Event = ({item}) => { - const calendarIconURI = item.item.image !== undefined?`data:image/png;charset=utf-8;base64,${item.item.image}`:'' - const [visible, setVisible] = useState(false) - const date = item.item.date.split('-') +const STORAGE_KEY = "teacherAnnouncements" +const Stack = createStackNavigator() + +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; + return ( + + + + {item.item.message} + + + {dateInfo!==undefined?{dateInfo}:<>} + + + + + ) +} + +export const TeacherList = ({route}) => { + return ( + + } + keyExtractor={item=>JSON.stringify(item)} + /> + + ) +} + +export const whatsNew = ({route}) => { + const item = route.params + return ( + + + Today + + + } + keyExtractor={item=>JSON.stringify(item)} + horizontal + /> + + + + + Future + + + } + keyExtractor={item=>JSON.stringify(item)} + horizontal + /> + + + + + Past Week + + + } + keyExtractor={item=>JSON.stringify(item)} + horizontal + /> + + + + + ) +} + +const Today = ({item}) => { + const newIconURI = item.item.icon !== undefined?`data:image/png;charset=utf-8;base64,${item.item.icon}`:'' const today = new Date(getCurrentDate()) - const week = new Date().setDate(new Date().getDate() - 8) const itemDate = new Date(item.item.date) - const extra = ( - <> - {item.item.text} - Location: {item.item.location} - - ) - if (itemDate >= today) { + if (itemDate.getTime() == today.getTime()) { return ( - setVisible(!visible)} activeOpacity={0.8}> - - - - {item.item.title} - {`${date[1]}/${date[2]}/${date[0]}`} - + setVisible(!visible)} activeOpacity={0.8}> + + + {item.item.name} + {item.item.date} - + ) } - else if (itemDate >= week){ + else { return ( - setVisible(!visible)} activeOpacity={0.8}> - - - - {item.item.title} - {`${date[1]}/${date[2]}/${date[0]}`} + null + ) + } +} +const Future = ({item}) => { + const newIconURI = item.item.icon !== undefined?`data:image/png;charset=utf-8;base64,${item.item.icon}`:'' + const today = new Date(getCurrentDate()) + const itemDate = new Date(item.item.date) + + if (itemDate.getTime() > today.getTime()) { + return ( + setVisible(!visible)} activeOpacity={0.8}> + + + {item.item.name} + {item.item.date} + + + ) + } + else { + return ( + null + ) + } +} +const PastWeek = ({item}) => { + const newIconURI = item.item.icon !== undefined?`data:image/png;charset=utf-8;base64,${item.item.icon}`:'' + const today = new Date(getCurrentDate()) + const week = new Date(getWeekDate()) + const itemDate = new Date(item.item.date) + + if (itemDate.getTime() >= week.getTime() && today.getTime()>itemDate.getTime()) { + return ( + setVisible(!visible)} activeOpacity={0.8}> + + + {item.item.name} + {item.item.date} + + + ) + } + else { + return ( + null + ) + } +} + +const AnnouncementToday = ({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:''; + const itemDate = new Date(item.item.date) + const today = new Date(getCurrentDate()) + const teacher = item.item.teacher !==""?item.item.teacher:"No Teacher" + + if (itemDate.getTime()===today.getTime()) { + return ( + + + {item.item.message} + + + {teacher}{'\t'}{dateInfo} - + ) + } + else { + return ( + null + ) + } +} + +const New = ({item}) => { + const calendarIconURI = item.item.icon !== undefined?`data:image/png;charset=utf-8;base64,${item.item.icon}`:'' + const today = new Date(getCurrentDate()) + const week = new Date(getWeekDate()) + const itemDate = new Date(item.item.date) + + if (itemDate.getTime() >= today.getTime()) { + return ( + setVisible(!visible)} activeOpacity={0.8}> + + + {item.item.name} + {item.item.date} + + + ) + } + else if (itemDate.getTime() >= week.getTime()){ + return ( + setVisible(!visible)} activeOpacity={0.8}> + + + {item.item.name} + {item.item.date} + + ) } else { @@ -89,8 +259,8 @@ const Event = ({item}) => { } function Home1() { + const [modalVisible, setModalVisible] = useState(false); -const [modalVisible, setModalVisible] = useState(false); return ( @@ -108,21 +278,146 @@ const [modalVisible, setModalVisible] = useState(false); - - - ) } +const background = () + +function HomeStack() { + return ( + + + background + }} + /> + ({ + title:"What's New", + headerTitleStyle:styles.headerTitle, + headerBackground: ()=>background + })} + /> + ({ + title:"Announcements", + headerTitleStyle:styles.headerTitle, + headerBackground: ()=>background + })} + /> + ({ + headerTitleStyle:[styles.headerTitle,{alignSelf:'center',fontSize:Math.min(24,24*23/route.params.name.length)}], + title:route.params.name, + headerRight:()=>(<>), + headerBackground: ()=>background + })} + /> + + + ) +} + +function HomeScreen (props) { + const iconURI = props.studentData.icon !== undefined?`data:image/png;charset=utf-8;base64,${props.studentData.icon}`:`data:image/png;charset-utf-8;base64,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`; + return( + + + + What's New? + props.navigation.navigate('new', {data:props.data})}> + View All + + + + + } + keyExtractor={item=>JSON.stringify(item)} + horizontal + /> + + + + + + Student of the Week + + + + + + + {props.studentData.name} + Grade {props.studentData.year} + + + + Hobbies: {props.studentData.hobbies} + Achievements: {props.studentData.achievements} + Messages: {props.studentData.messages} + + + + + + + Announcements + props.navigation.navigate(Announcements)}> + View All + + + } + keyExtractor={item=>JSON.stringify(item)} + /> + + + + + Linking.openURL(props.challengeData.link)}> + + + + + + Linking.openURL(props.pollData.link)}> + + + + + + + ) +} class Home extends React.Component { constructor(props) { super(props) this.state = { studentData: [], - announcementsData:[], - challengeData:[], + annData:[], data:[], + pollData:[], + challengeData:[], + teacherNames: [], + favoriteNames: [], isLoading:true } } @@ -140,6 +435,16 @@ class Home extends React.Component { AsyncStorage.setItem(STORAGE_KEY,JSON.stringify(favoriteNames)).catch(console.log).done() } componentDidMount() { + fetch(`${url}/api/en/challenge`,{ + headers: { + 'Cache-Control': 'no-cache' + }} + ).then((response) => { + return response.text(); + }).then((json) => { + this.setState({challengeData: JSON.parse(json),isLoading:false}); + }).catch((error) => console.error(error)) + fetch(`${url}/api/en/student`,{ headers: { 'Cache-Control': 'no-cache' @@ -149,16 +454,6 @@ class Home extends React.Component { }).then((json) => { this.setState({studentData: JSON.parse(json),isLoading:false}); }).catch((error) => console.error(error)) - - fetch(`${url}/api/en/challenge`,{ - headers: { - 'Cache-Control': 'no-cache' - }} - ).then((response) => { - return response.text(); - }).then((json) => { - this.setState({challengeData: JSON.parse(json),isLoading:false}); - }).catch((error) => console.error(error)) this.getData() this.props.navigation.addListener( @@ -176,6 +471,22 @@ class Home extends React.Component { .done() } + getData() { + fetch(`${url}/api/en/new`,{ + headers: { + 'Cache-Control': 'no-cache' + } }) + .then((response) => { + return response.text(); + }) + .then((json) => { + const data = JSON.parse(json).data + data.sort((a,b)=>new Date(b.date).getTime()-new Date(a.date).getTime()) + this.setState({data: data}); + }) + .catch((error) => console.error(error)) + } + getData1() { fetch(`${url}/api/en/announcements`,{ headers: { @@ -190,92 +501,20 @@ class Home extends React.Component { 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)) - } - - getData() { - fetch(`${url}/api/en/events`,{ - headers: { - 'Cache-Control': 'no-cache' - } }) - .then((response) => { - return response.text(); - }) - .then((json) => { - const data = JSON.parse(json).data - data.sort((a,b)=>new Date(b.date).getTime()-new Date(a.date).getTime()) - this.setState({data: data}); - }) - .catch((error) => console.error(error)) + this.setState({annData: data, teacherNames: teacherNames.map(x=>({name:x})),isLoading:false}); + }) + + .catch((error) => console.error(error)) + } render() { - const iconURI = this.state.studentData.icon !== undefined?`data:image/png;charset=utf-8;base64,${this.state.studentData.icon}`:`data:image/png;charset-utf-8;base64,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`; return ( - - - - Blair - - - - - - - - What's New? - this.navigation.navigate(Calendar)}> - View All - - - - - } - keyExtractor={item=>JSON.stringify(item)} - horizontal - /> - - - - - - Student of the Week - - - - - - - {this.state.studentData.name} - Grade {this.state.studentData.year} - - - - Hobbies: {this.state.studentData.hobbies} - Achievements: {this.state.studentData.achievements} - Messages: {this.state.studentData.messages} - - - - - - Announcements - - - - - + ) } } -export default Home; \ No newline at end of file +export default HomeStack; \ No newline at end of file diff --git a/app/Staff.js b/app/Staff.js index bb65e29..e5e6073 100644 --- a/app/Staff.js +++ b/app/Staff.js @@ -26,7 +26,21 @@ import { url } from './resources/fetchInfo.json' const StaffElement = ({item}) => { const [visible, setVisible] = useState(false) - const extra = [...item.item.emails.map(email=>({'\n'}Email: Linking.openURL("mailto:"+email)}>{email}))] + const extra = ( + [ + ...item.item.emails.map(email=>( + + + Linking.openURL("mailto:"+email)}>{' '}{email} + + )), + + + {' '}{item.item.department} + + ] + ) + //const extra = [...item.item.emails.map(email=>({'\n'}Email: Linking.openURL("mailto:"+email)}>{email}))] return( setVisible(!visible)} activeOpacity={0.8}> diff --git a/app/assets/dep.png b/app/assets/dep.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3d6f6d8becacbdf2ad3172632cdfa93ba09d25 GIT binary patch literal 6629 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