Skip to content

Commit 1d3335a

Browse files
theme update
1 parent 3a09e88 commit 1d3335a

File tree

13 files changed

+105
-63
lines changed

13 files changed

+105
-63
lines changed
2.42 KB
Binary file not shown.

src/components/Modals/Settings/Settings.tsx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,27 @@ import {RALEWAY_BOLD, RALEWAY_MEDIUM} from '../../../constants/Fonts/Fonts';
88
import {optionProp} from '../../../models/Meeting/CreateMeeting/interface';
99
import {useState} from 'react';
1010
import FullDivider from '../../Divider/FullDivider';
11-
import {updateTheme} from '../../../store/theme/actionCreator/updateTheme';
11+
import {writeAsync} from '../../../utils/Firestore/write';
1212

1313
interface props {
14+
uid: string;
1415
modalVisible: boolean;
1516
onBackDropPress: () => void;
17+
theme: 'light' | 'dark';
1618
}
1719

1820
const Settings = (props: props) => {
1921
const styles = useStyleSheet(themedStyles);
22+
const [theme, setThemeState] = useState<'light' | 'dark'>(props.theme);
2023

21-
const storeDispatch = useDispatch();
22-
23-
const theme = useSelector(
24-
(reduxState: RootState) => reduxState.ThemeReducer.theme,
25-
);
26-
27-
const changeTheme = () => {
28-
storeDispatch(updateTheme(theme === 'dark' ? 'light' : 'dark'));
24+
const changeTheme = async () => {
25+
try {
26+
const changedTheme = theme === 'dark' ? 'light' : 'dark';
27+
setThemeState(changedTheme);
28+
await writeAsync('users', props.uid, {theme: changedTheme}, true);
29+
} catch (error) {
30+
console.log('Error in updating theme', error);
31+
}
2932
};
3033

3134
return (

src/hooks/Meeting/useStartMeeting.ts

Lines changed: 27 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -55,32 +55,20 @@ const useStartMeeting = (
5555
);
5656

5757
const startCall = async () => {
58-
try {
59-
await engine.current?.joinChannel(
60-
meetConfig.token,
61-
meetConfig.channelName,
62-
null,
63-
meetConfig.agoraId,
64-
);
65-
} catch (err) {
66-
console.log('Error in start call', err);
67-
toggleModal(false);
68-
navigation.goBack();
69-
Toast.show({
70-
type: 'error',
71-
text1: 'Oops!',
72-
text2: 'Something went wrong. Please try again',
73-
position: 'top',
74-
visibilityTime: 200,
75-
});
76-
}
58+
await engine.current?.joinChannel(
59+
meetConfig.token,
60+
meetConfig.channelName,
61+
null,
62+
meetConfig.agoraId,
63+
);
7764
};
7865

7966
const endCall = async () => {
8067
try {
81-
console.log('end Call');
8268
await engine.current?.leaveChannel();
8369

70+
await engine.current?.destroy();
71+
8472
//remove the user from the list
8573
await onMemberLeftMeet(meetConfig, firebaseUser);
8674

@@ -93,8 +81,8 @@ const useStartMeeting = (
9381
};
9482

9583
useEffect(() => {
96-
try {
97-
const intializeRTC = async () => {
84+
const intializeRTC = async () => {
85+
try {
9886
await checkPermission();
9987

10088
engine.current = await RtcEngine.create(appId);
@@ -132,6 +120,7 @@ const useStartMeeting = (
132120
} else {
133121
await onMemberJoinMeet(meetConfig, firebaseUser);
134122
}
123+
135124
sound.current?.play();
136125

137126
setJoinSucceed(true);
@@ -158,24 +147,24 @@ const useStartMeeting = (
158147
position: 'top',
159148
});
160149
});
161-
};
150+
} catch (err) {
151+
console.log('Error in initialize RTC', err);
152+
toggleModal(false);
153+
navigation.goBack();
154+
Toast.show({
155+
type: 'error',
156+
text1: 'Oops!',
157+
text2: 'Something went wrong. Please try again',
158+
position: 'top',
159+
visibilityTime: 300,
160+
});
161+
}
162+
};
162163

163-
//================ Event Listeners Ends ====================================
164+
//================ Event Listeners Ends ====================================
164165

165-
//Call the initialize RTC method
166-
intializeRTC();
167-
} catch (err) {
168-
console.log('Error in initialize RTC', err);
169-
toggleModal(false);
170-
navigation.goBack();
171-
Toast.show({
172-
type: 'error',
173-
text1: 'Oops!',
174-
text2: 'Something went wrong. Please try again',
175-
position: 'top',
176-
visibilityTime: 300,
177-
});
178-
}
166+
//Call the initialize RTC method
167+
intializeRTC();
179168
}, []);
180169

181170
useEffect(() => {

src/hooks/auth/useAuth.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ import {
1111
} from '../../store/User/actionCreator/addFirebaseUser';
1212
import {FAIL, SUCCESS} from '../../constants/RemoteStates/remotestates';
1313
import {Platform, ToastAndroid} from 'react-native';
14-
import {UserInterface} from '../../models/User/User';
14+
import {defaultUser, UserInterface} from '../../models/User/User';
1515
import {addNewUserObj} from '../../utils/User/Methods/addNewUserObj';
1616
import {updateUserObjOnAuth} from '../../utils/User/Methods/updateUserObjOnAuth';
1717
import useFirestore from '../Firestore/useFirestore';
1818
import Toast from 'react-native-toast-message';
19+
import {updateTheme} from '../../store/theme/actionCreator/updateTheme';
20+
import {getRemoteTheme, getTheme} from '../../utils/User/Methods/getTheme';
1921

2022
const useAuth = () => {
2123
const [firebaseUserRef, setFirebaseUserRef] = useState<
@@ -48,9 +50,9 @@ const useAuth = () => {
4850
await addNewUserObj(
4951
user.uid,
5052
Platform.OS,
53+
getTheme(),
54+
user.email ? user.email : '[email protected]',
5155
user.displayName ? user.displayName : undefined,
52-
user.phoneNumber ? user.phoneNumber : undefined,
53-
user.email ? user.email : undefined,
5456
user.photoURL ? user.photoURL : undefined,
5557
false,
5658
);
@@ -67,7 +69,7 @@ const useAuth = () => {
6769
Platform.OS,
6870
user.displayName ? user.displayName : undefined,
6971
user.phoneNumber ? user.phoneNumber : undefined,
70-
user.email ? user.email : undefined,
72+
user.email ? user.email : '[email protected]',
7173
user.photoURL ? user.photoURL : '',
7274
);
7375
}
@@ -80,6 +82,7 @@ const useAuth = () => {
8082
} else {
8183
//update the firebase user with success status 'FAIL' in redux
8284
storeDispatch(updateFirebaseUserStatus(FAIL));
85+
storeDispatch(updateTheme(defaultUser.theme));
8386

8487
// remove listener
8588
setFirebaseUserRef(undefined);
@@ -101,6 +104,10 @@ const useAuth = () => {
101104
(fetchedUser: UserInterface) => {
102105
if (fetchedUser) {
103106
const action = setFirebaseUser(fetchedUser, SUCCESS);
107+
const themeAction = updateTheme(fetchedUser.theme);
108+
if (themeAction) {
109+
storeDispatch(themeAction);
110+
}
104111
storeDispatch(action);
105112
}
106113
},

src/models/User/User.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {getTheme} from '../../utils/User/Methods/getTheme';
2+
13
export interface UserInterface {
24
uid: string;
35
name?: string;
@@ -8,12 +10,14 @@ export interface UserInterface {
810
bio?: string;
911
tagLine?: string;
1012
agoraId: number;
13+
theme: 'dark' | 'light';
1114
}
1215

1316
export const defaultUser: UserInterface = {
1417
uid: '',
1518
agoraId: 0,
1619
20+
theme: getTheme(),
1721
};
1822

1923
export type userStatusType = 'PENDING' | 'FAIL' | 'SUCCESS' | 'FETCHING';

src/screens/Meeting/MeetScreen/MeetScreen.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const MeetScreen = (props: any) => {
4343
heading="Baithak"
4444
rightIcon="video-outline"
4545
onPressLeft={() => props.navigation.navigate(PROFILE_SCREEN)}
46-
onPressRight={() => setSelectMeet(!selectMeet)}
46+
onPressRight={() => props.navigation.navigate(CREATE_MEET_SCREEN)}
4747
/>
4848
<View style={styles.container}>
4949
<View style={styles.imageView}>

src/screens/ProfileScreen/ProfileScreen.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ const ProfileScreen = (props: any) => {
8484
return (
8585
<Layout style={styles.main} level="1">
8686
<Settings
87+
uid={firebaseUser.uid}
88+
theme={firebaseUser.theme}
8789
modalVisible={settingOpen}
8890
onBackDropPress={() => toggleSetting(!settingOpen)}
8991
/>

src/store/theme/reducer/ThemeReducer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ interface themes {
77
}
88

99
const initialThemeState: themes = {
10-
theme: 'dark',
10+
theme: Appearance.getColorScheme(),
1111
};
1212

1313
const ThemeReducer = (

src/utils/Permissions/Permission.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ export const checkPermission = async () => {
3131
);
3232
if (!cameraPerm || !micPerm) {
3333
await requestCameraAndAudioPermission();
34-
} else {
35-
console.log('granted');
3634
}
3735
}
3836
};

src/utils/User/Methods/addNewUserObj.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import {createNewUserObj} from './createNewUserObj';
55
export const addNewUserObj = async (
66
uid: string,
77
os: 'android' | 'ios' | 'windows' | 'macos' | 'web',
8+
theme: 'light' | 'dark',
9+
email: string,
810
name?: string,
9-
phone?: string,
10-
email?: string,
1111
photoURL?: string,
1212
mergeCondition?: boolean,
1313
) => {
@@ -16,9 +16,9 @@ export const addNewUserObj = async (
1616
agora_ID,
1717
uid,
1818
os,
19-
name,
20-
phone,
19+
theme,
2120
email,
21+
name,
2222
photoURL,
2323
);
2424
await writeUserObj(newUser, mergeCondition ? true : false);

0 commit comments

Comments
 (0)