123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- import {StyleSheet, Text, View, ScrollView} from 'react-native';
- import React from 'react';
- import NewscoutTitleHeader from '../components/organisms/Headers/NewscoutTitleHeader';
- import {List, ToggleButton} from 'react-native-paper';
- import colors from '../theme/colors';
- import fonts from '../theme/fonts';
- const FAQPage = props => {
- const {navigation} = props;
- const faqCategories = [
- 'General',
- 'Login',
- 'Account',
- 'Viability',
- 'Bruh1',
- 'bruh2',
- 'bruh3',
- ];
- const [categoryValue, setCategoryValue] = React.useState(faqCategories[0]);
- // const [questions, setQuestions] = React.useState(
- // faqCategories.reduce((result, key) => ({...result, [key]: [{}]})),
- // );
- const questions = [
- {
- id: 0,
- title: 'What is Newscout?',
- answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nis',
- },
- {
- id: 1,
- title: 'How to use Newscout?',
- answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nis',
- },
- {
- id: 2,
- title: 'Can I create my own news?',
- answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nis',
- },
- {
- id: 3,
- title: 'How can I upload images?',
- answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nis',
- },
- {
- id: 4,
- title: 'Is Newscout free to use?',
- answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nis',
- },
- ];
- const [expandedId, setExpandedId] = React.useState('');
- const handleAccordionPress = accordionId => {
- setExpandedId(accordionId === expandedId ? '' : accordionId);
- };
- return (
- <View style={styles.faqContainer}>
- <ScrollView showsVerticalScrollIndicator={false}>
- <NewscoutTitleHeader
- title={'FAQ'}
- backButtonShown
- onBackClick={() => navigation.goBack()}
- />
- <View style={styles.pillContainer}>
- <ScrollView horizontal showsHorizontalScrollIndicator={false}>
- <ToggleButton.Group
- onValueChange={value => {
- setCategoryValue(value);
- }}>
- {faqCategories.map(category => (
- <ToggleButton
- key={category}
- icon={() => (
- <Text
- style={[
- category === categoryValue
- ? styles.selectedPillText
- : styles.pillText,
- ]}>
- {category}
- </Text>
- )}
- style={[
- category === categoryValue
- ? styles.selectedContainer
- : styles.container,
- {marginHorizontal: fonts.getSize(4)},
- ]}
- value={category}
- />
- ))}
- </ToggleButton.Group>
- </ScrollView>
- </View>
- <List.Section style={{paddingHorizontal: 16, gap: 16}}>
- <List.AccordionGroup
- expandedId={expandedId}
- onAccordionPress={handleAccordionPress}>
- {questions.map(item => (
- <List.Accordion
- title={item.title}
- key={item.id}
- id={item.id.toString()}
- style={
- [expandedId === item.id.toString()
- ? styles.selectedAccordionContainer
- : styles.accordionContainer,
- // styles.baseAccordionContainer
- ]
- }
- titleStyle={styles.accordionTitle}>
- <View
- style={[
- {
- borderColor: colors.primaryColor,
- borderBottomWidth: 2,
- borderLeftWidth: 2,
- borderRightWidth: 2,
- borderBottomLeftRadius: 16,
- borderBottomRightRadius: 16,
- paddingHorizontal: 16,
- paddingBottom: 8,
- backgroundColor: colors.white,
- },
- ]}>
- <Text style={styles.accordionDescription}>
- {item.answer}
- </Text>
- </View>
- </List.Accordion>
- ))}
- </List.AccordionGroup>
- </List.Section>
- </ScrollView>
- </View>
- );
- };
- export default FAQPage;
- const styles = StyleSheet.create({
- selectedAccordionContainer: {
- borderTopWidth: 2,
- borderRightWidth: 2,
- borderLeftWidth: 2,
- borderTopLeftRadius: 16,
- borderTopRightRadius: 16,
- borderColor: colors.primaryColor,
- paddingVertical: 4,
- height:'auto',
- backgroundColor: colors.white
- },
- accordionContainer: {
- borderWidth: 2,
- borderColor: colors.grayShade_400,
- borderRadius: 16,
- height: 'auto',
- paddingVertical: 16,
- backgroundColor: colors.white
- },
- accordionTitle: {
- fontFamily: fonts.type.semibold,
- color: colors.black,
- },
- accordionDescription: {
- fontFamily: fonts.type.medium,
- color: colors.grayShade_200
- },
-
- selectedPillText: {
- fontFamily: fonts.type.semibold,
- fontSize: fonts.getSize(12),
- color: colors.white,
- },
- pillText: {
- fontFamily: fonts.type.semibold,
- fontSize: fonts.getSize(12),
- color: colors.quaternaryColor,
- },
- categoriesPillContainer: {
- paddingBottom: fonts.getSize(8),
- flexDirection: 'row',
- alignItems: 'space-between',
- paddingHorizontal: fonts.getSize(16),
- },
- container: {
- borderRadius: fonts.getSize(18),
- paddingVertical: fonts.getSize(8),
- paddingHorizontal: fonts.getSize(16),
- backgroundColor: colors.white,
- width: 'auto',
- },
- selectedContainer: {
- paddingVertical: fonts.getSize(8),
- paddingHorizontal: fonts.getSize(16),
- backgroundColor: colors.topVariantColor,
- borderRadius: fonts.getSize(18),
- width: 'auto',
- },
- pillContainer: {
- paddingVertical: 16,
- paddingLeft: 16,
- },
- faqContainer:{
- backgroundColor: colors.white
- }
- });
|