diff --git a/TERMTERM/.gitignore b/TERMTERM/.gitignore
index 3b7954d0..2bbe3aaf 100644
--- a/TERMTERM/.gitignore
+++ b/TERMTERM/.gitignore
@@ -10,6 +10,9 @@ npm-debug.*
*.orig.*
web-build/
secret.ts
+environment.js
+ios/
+android/
# macOS
.DS_Store
diff --git a/TERMTERM/GoogleService-Info.plist b/TERMTERM/GoogleService-Info.plist
new file mode 100644
index 00000000..af16043e
--- /dev/null
+++ b/TERMTERM/GoogleService-Info.plist
@@ -0,0 +1,30 @@
+
+
+
+
+ API_KEY
+ AIzaSyC8f2gCV1a-crdjF_qJMda1RP-boKqcs-I
+ GCM_SENDER_ID
+ 25902704158
+ PLIST_VERSION
+ 1
+ BUNDLE_ID
+ io.omz.termterm
+ PROJECT_ID
+ termterm-f2dd0
+ STORAGE_BUCKET
+ termterm-f2dd0.appspot.com
+ IS_ADS_ENABLED
+
+ IS_ANALYTICS_ENABLED
+
+ IS_APPINVITE_ENABLED
+
+ IS_GCM_ENABLED
+
+ IS_SIGNIN_ENABLED
+
+ GOOGLE_APP_ID
+ 1:25902704158:ios:9ead1313d399eb97ea300f
+
+
\ No newline at end of file
diff --git a/TERMTERM/app.json b/TERMTERM/app.json
index 1a8b6e09..e00c7bb7 100644
--- a/TERMTERM/app.json
+++ b/TERMTERM/app.json
@@ -14,7 +14,9 @@
"updates": {
"fallbackToCacheTimeout": 0
},
- "assetBundlePatterns": ["**/*"],
+ "assetBundlePatterns": [
+ "**/*"
+ ],
"ios": {
"supportsTablet": true,
"usesAppleSignIn": true,
@@ -28,6 +30,9 @@
},
"web": {
"favicon": "./assets/favicon.png"
- }
+ },
+ "plugins": [
+ "expo-build-properties"
+ ]
}
}
diff --git a/TERMTERM/index.js b/TERMTERM/index.js
new file mode 100644
index 00000000..1d6e981e
--- /dev/null
+++ b/TERMTERM/index.js
@@ -0,0 +1,8 @@
+import { registerRootComponent } from 'expo';
+
+import App from './App';
+
+// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
+// It also ensures that whether you load the app in Expo Go or in a native build,
+// the environment is set up appropriately
+registerRootComponent(App);
diff --git a/TERMTERM/metro.config.js b/TERMTERM/metro.config.js
new file mode 100644
index 00000000..ba170af8
--- /dev/null
+++ b/TERMTERM/metro.config.js
@@ -0,0 +1,7 @@
+// Learn more https://docs.expo.io/guides/customizing-metro
+const { getDefaultConfig } = require("expo/metro-config");
+
+const defaultConfig = getDefaultConfig(__dirname);
+defaultConfig.resolver.sourceExts.push("cjs");
+
+module.exports = defaultConfig;
diff --git a/TERMTERM/package.json b/TERMTERM/package.json
index 0c5bfa4d..875a62cf 100644
--- a/TERMTERM/package.json
+++ b/TERMTERM/package.json
@@ -1,18 +1,21 @@
{
"name": "termterm",
"version": "1.0.0",
- "main": "node_modules/expo/AppEntry.js",
"scripts": {
- "start": "expo start",
- "android": "expo start --android",
- "ios": "expo start --ios",
- "web": "expo start --web"
+ "start": "expo start --dev-client",
+ "android": "expo run:android",
+ "ios": "expo run:ios",
+ "web": "expo start --web",
+ "build:preview": "eas build --profile preview --platform ios",
+ "build:production": "eas build --profile production --platform ios"
},
"dependencies": {
"@expo/react-native-action-sheet": "^4.0.1",
"@gorhom/bottom-sheet": "^4",
"@react-native-async-storage/async-storage": "~1.17.3",
"@react-native-community/masked-view": "^0.1.11",
+ "@react-native-firebase/analytics": "^18.5.0",
+ "@react-native-firebase/app": "^18.5.0",
"@react-navigation/bottom-tabs": "^6.5.7",
"@react-navigation/native": "^6.1.4",
"@react-navigation/stack": "^6.3.14",
@@ -21,17 +24,20 @@
"@types/styled-components": "^5.1.26",
"@types/styled-components-react-native": "^5.2.1",
"axios": "^1.4.0",
- "expo": "~47.0.12",
+ "expo": "~47.0.14",
"expo-apple-authentication": "~5.0.1",
+ "expo-build-properties": "~0.4.1",
+ "expo-dev-client": "~2.0.1",
"expo-haptics": "~12.0.1",
"expo-image-picker": "^14.1.1",
"expo-sharing": "~11.0.1",
- "expo-splash-screen": "^0.17.5",
+ "expo-splash-screen": "~0.17.5",
"expo-status-bar": "~1.4.2",
+ "expo-updates": "~0.15.6",
"lottie-react-native": "5.1.4",
"react": "18.1.0",
"react-dom": "18.1.0",
- "react-native": "0.70.5",
+ "react-native": "0.70.8",
"react-native-dropdown-picker": "^5.4.4",
"react-native-gesture-handler": "~2.8.0",
"react-native-modal": "^13.0.1",
diff --git a/TERMTERM/src/components/OtherThink/Commnet.tsx b/TERMTERM/src/components/OtherThink/Commnet.tsx
index ffbbc30f..aad89559 100644
--- a/TERMTERM/src/components/OtherThink/Commnet.tsx
+++ b/TERMTERM/src/components/OtherThink/Commnet.tsx
@@ -148,15 +148,15 @@ const Content = styled.Text<{ COLOR: colorTheme }>`
width: 100%;
${TYPO_STYLE.Subheading[1].Regular};
color: ${(props) => props.COLOR.Text.active};
- text-align: start;
+ text-align: left;
white-space: pre-line;
- line-height: 20.5%;
+ /* line-height: 20.5%; */
`;
const Source = styled.Text<{ COLOR: colorTheme }>`
${TYPO_STYLE.Caption[2].Medium};
- text-align: start;
+ text-align: left;
color: ${(props) => props.COLOR.Text.disabled};
margin-top: 7px;
`;
@@ -180,7 +180,7 @@ const DefaultInfoWrapper = styled.View`
const ProfileImageWrapper = styled.View`
width: 22px;
height: 22px;
- border-radius: 100%;
+ border-radius: 100px;
overflow: hidden;
display: flex;
align-items: center;
@@ -220,7 +220,7 @@ const Likes = styled.Text<{ COLOR: colorTheme }>`
const LikeButtonWrapper = styled.TouchableOpacity`
width: 34px;
height: 34px;
- border-radius: 100%;
+ border-radius: 100px;
overflow: hidden;
margin-right: 7px;
`;
diff --git a/TERMTERM/src/components/apply/style.tsx b/TERMTERM/src/components/apply/style.tsx
index 4c092546..2a644b5e 100644
--- a/TERMTERM/src/components/apply/style.tsx
+++ b/TERMTERM/src/components/apply/style.tsx
@@ -32,7 +32,7 @@ export const TitleWrapper = styled.View`
export const Title = styled.Text<{ COLOR: colorTheme }>`
${TYPO_STYLE.Body[1].ExtraBold};
color: ${(props) => props.COLOR.Text.active};
- text-align: start;
+ text-align: left;
`;
export const TitleObjet = styled.View`
@@ -46,7 +46,7 @@ export const TitleObjet = styled.View`
export const Content = styled.Text<{ COLOR: colorTheme }>`
${TYPO_STYLE.Subheading[1].Regular};
- text-align: start;
+ text-align: left;
white-space: pre-line;
line-height: 20px;
color: ${(props) => props.COLOR.Text.active};
diff --git a/TERMTERM/src/components/archive/default/index.tsx b/TERMTERM/src/components/archive/default/index.tsx
index 3de3c404..96932ef8 100644
--- a/TERMTERM/src/components/archive/default/index.tsx
+++ b/TERMTERM/src/components/archive/default/index.tsx
@@ -63,7 +63,6 @@ const Title = styled.Text<{ COLOR: colorTheme }>`
text-align: center;
white-space: pre-line;
margin-top: 20px;
- line-height: 37%;
`;
const Subtitle = styled.Text<{ COLOR: colorTheme }>`
diff --git a/TERMTERM/src/components/cards/EmptyWordCard.tsx b/TERMTERM/src/components/cards/EmptyWordCard.tsx
index ac9831d3..e4330ebd 100644
--- a/TERMTERM/src/components/cards/EmptyWordCard.tsx
+++ b/TERMTERM/src/components/cards/EmptyWordCard.tsx
@@ -90,7 +90,6 @@ const Title = styled.Text<{ COLOR: colorTheme }>`
${TYPO_STYLE.Body[1].ExtraBold};
color: ${(props) => props.COLOR.Text.active};
text-align: center;
- line-height: 37%;
`;
const SubTitle = styled.Text<{ COLOR: colorTheme }>`
@@ -107,7 +106,7 @@ const WordButton = styled.TouchableOpacity<{ COLOR: colorTheme }>`
height: 45px;
z-index: 2;
background-color: ${(props) => props.COLOR.THEME.primary[130]};
- border-radius: 50%;
+ border-radius: 50px;
margin-top: 30px;
display: flex;
flex-direction: row;
diff --git a/TERMTERM/src/components/cards/WordCard.tsx b/TERMTERM/src/components/cards/WordCard.tsx
index b9068d7b..a2f20880 100644
--- a/TERMTERM/src/components/cards/WordCard.tsx
+++ b/TERMTERM/src/components/cards/WordCard.tsx
@@ -85,7 +85,7 @@ const WordButton = styled.TouchableOpacity`
height: 44px;
z-index: 2;
background-color: #19d24d;
- border-radius: 50%;
+ border-radius: 50px;
margin-top: 30px;
`;
diff --git a/TERMTERM/src/components/common/Bookmark.tsx b/TERMTERM/src/components/common/Bookmark.tsx
index 8d26e30b..2c0afc0a 100644
--- a/TERMTERM/src/components/common/Bookmark.tsx
+++ b/TERMTERM/src/components/common/Bookmark.tsx
@@ -9,7 +9,7 @@ export const BookmarkButton = styled.TouchableOpacity`
right: 10px;
width: 38px;
height: 38px;
- border-radius: 100%;
+ border-radius: 100px;
display: flex;
align-items: center;
justify-content: center;
@@ -27,7 +27,7 @@ export const PreviewBookmark = styled.TouchableOpacity`
export const BookmarkWrapper = styled.TouchableOpacity`
width: 38px;
height: 38px;
- border-radius: 100%;
+ border-radius: 100px;
display: flex;
align-items: center;
justify-content: center;
diff --git a/TERMTERM/src/components/common/CustomEmailInput.tsx b/TERMTERM/src/components/common/CustomEmailInput.tsx
index 9609c334..8fd5ba43 100644
--- a/TERMTERM/src/components/common/CustomEmailInput.tsx
+++ b/TERMTERM/src/components/common/CustomEmailInput.tsx
@@ -50,7 +50,7 @@ const Input = styled.TextInput<{ COLOR: colorTheme }>`
${TYPO_STYLE.Subheading[1].Regular};
width: 100%;
height: 100%;
- text-align: start;
+ text-align: left;
color: ${(props) => props.COLOR.Text.active};
margin-bottom: 2px;
`;
diff --git a/TERMTERM/src/components/common/CustomTextInput.tsx b/TERMTERM/src/components/common/CustomTextInput.tsx
index 0741976b..bd4384b7 100644
--- a/TERMTERM/src/components/common/CustomTextInput.tsx
+++ b/TERMTERM/src/components/common/CustomTextInput.tsx
@@ -58,7 +58,7 @@ const InputBox = styled.View`
const Input = styled.TextInput<{ COLOR: colorTheme }>`
width: 100%;
height: 100%;
- text-align: start;
+ text-align: left;
color: ${(props) => props.COLOR.Text.active};
margin-bottom: 2px;
`;
diff --git a/TERMTERM/src/components/common/CustomTextarea.tsx b/TERMTERM/src/components/common/CustomTextarea.tsx
index 6e665b8f..8e277911 100644
--- a/TERMTERM/src/components/common/CustomTextarea.tsx
+++ b/TERMTERM/src/components/common/CustomTextarea.tsx
@@ -46,7 +46,7 @@ const Input = styled.TextInput<{ COLOR: colorTheme }>`
padding: 15px 20px;
outline: none;
border: none;
- text-align: start;
+ text-align: left;
${TYPO_STYLE.Subheading[1].Regular};
`;
diff --git a/TERMTERM/src/components/common/Filter/index.tsx b/TERMTERM/src/components/common/Filter/index.tsx
index 21cdf82c..1868dbef 100644
--- a/TERMTERM/src/components/common/Filter/index.tsx
+++ b/TERMTERM/src/components/common/Filter/index.tsx
@@ -52,7 +52,7 @@ const FilterButton = styled.TouchableOpacity`
const CilrcleWrapper = styled.View<{ COLOR: colorTheme }>`
width: 11px;
height: 11px;
- border-radius: 100%;
+ border-radius: 100px;
background-color: ${(props) => props.COLOR.THEME.primary[130]};
display: flex;
align-items: center;
diff --git a/TERMTERM/src/components/common/Input.tsx b/TERMTERM/src/components/common/Input.tsx
index 9deb32de..c6968b1f 100644
--- a/TERMTERM/src/components/common/Input.tsx
+++ b/TERMTERM/src/components/common/Input.tsx
@@ -73,7 +73,7 @@ const InputBox = styled.View`
const Input = styled.TextInput<{ COLOR: colorTheme }>`
width: 100%;
height: 100%;
- text-align: start;
+ text-align: left;
color: ${(props) => props.COLOR.Text.active};
margin-bottom: 2px;
`;
diff --git a/TERMTERM/src/components/common/TermBox/index.tsx b/TERMTERM/src/components/common/TermBox/index.tsx
index 2e1d7f5f..97ad907c 100644
--- a/TERMTERM/src/components/common/TermBox/index.tsx
+++ b/TERMTERM/src/components/common/TermBox/index.tsx
@@ -98,7 +98,7 @@ const BookmarkButton = styled.TouchableOpacity<{ mode: boolean }>`
align-items: center;
justify-content: center;
background-color: ${(props) => (props.mode ? "#e2e2e261" : "#0000003b")};
- border-radius: 100%;
+ border-radius: 100px;
`;
const ResultTitle = styled.Text<{ COLOR: colorTheme }>`
diff --git a/TERMTERM/src/components/home/DailyTermBox.tsx b/TERMTERM/src/components/home/DailyTermBox.tsx
index 2042f1c4..227544f9 100644
--- a/TERMTERM/src/components/home/DailyTermBox.tsx
+++ b/TERMTERM/src/components/home/DailyTermBox.tsx
@@ -92,9 +92,9 @@ const Content = styled.Text<{ COLOR: colorTheme }>`
${TYPO_STYLE.Caption[1].Regular};
//TODO : line-height 수정
flex: 1;
- line-height: 17.5%;
+ /* line-height: 17.5%; */
color: ${(props) => props.COLOR.Text.default};
- text-align: start;
+ text-align: left;
white-space: pre-line;
`;
diff --git a/TERMTERM/src/components/my/Point/HistoryWrapper.tsx b/TERMTERM/src/components/my/Point/HistoryWrapper.tsx
index 5af9a448..7d579373 100644
--- a/TERMTERM/src/components/my/Point/HistoryWrapper.tsx
+++ b/TERMTERM/src/components/my/Point/HistoryWrapper.tsx
@@ -94,7 +94,7 @@ const Container = styled.View`
const TitleBox = styled.Text<{ COLOR: colorTheme }>`
width: 100%;
- text-align: start;
+ text-align: left;
${TYPO_STYLE.Body[2].Bold};
color: ${(props) => props.COLOR.Text.active};
`;
diff --git a/TERMTERM/src/screens/CompleteQuiz.tsx b/TERMTERM/src/screens/CompleteQuiz.tsx
index 71589971..d2cd7809 100644
--- a/TERMTERM/src/screens/CompleteQuiz.tsx
+++ b/TERMTERM/src/screens/CompleteQuiz.tsx
@@ -240,7 +240,7 @@ const CompleteButton = styled.TouchableOpacity<{
z-index: 2;
background-color: ${(props) =>
props.mode ? props.COLOR.Neutral[100] : props.COLOR.Background.onSurface};
- border-radius: 50%;
+ border-radius: 50px;
margin-top: 40px;
`;
diff --git a/TERMTERM/src/screens/MakeFolder.tsx b/TERMTERM/src/screens/MakeFolder.tsx
index 64787306..cd62cd50 100644
--- a/TERMTERM/src/screens/MakeFolder.tsx
+++ b/TERMTERM/src/screens/MakeFolder.tsx
@@ -9,6 +9,7 @@ import { Keyboard } from "react-native";
import CompleteButton from "@components/makefolder/CompleteButton";
import { useHaptics } from "@hooks/useHaptics";
import { useFolder } from "@hooks/useFolder";
+import { logGAevent } from "@utils/analytics";
export type Props = StackScreenProps;
@@ -27,7 +28,7 @@ const MakeFolder = ({ navigation }: Props) => {
const onComplete = () => {
if (info.name !== "") {
const res = createFolder({ description: info.desc, title: info.name });
-
+ logGAevent("make_folder");
getUsersFolderList();
navigation.pop();
} else {
diff --git a/TERMTERM/src/screens/QuizResult.tsx b/TERMTERM/src/screens/QuizResult.tsx
index b9908edf..21fa4336 100644
--- a/TERMTERM/src/screens/QuizResult.tsx
+++ b/TERMTERM/src/screens/QuizResult.tsx
@@ -15,6 +15,7 @@ import {
import QuizAnswerCard from "@components/terms/QuizAnswerCard";
import { eachQuizAnswerResult, quizState } from "@recoil/quizState";
import { useRecoilValue, useSetRecoilState } from "recoil";
+import { logGAevent } from "@utils/analytics";
export type Props = StackScreenProps;
@@ -44,11 +45,18 @@ const QuizResult = ({ navigation, route }: Props) => {
theme={mode}
type={mode ? BUTTON_TYPE.primary : BUTTON_TYPE.secondary}
state={BUTTON_STATE.active}
- onPress={() =>
- currIdx === 5
- ? navigation.navigate("CompleteQuiz", {id: quizResult.statusCode})
- : navigation.navigate("DailyQuiz")
- }
+ onPress={() => {
+ if (currIdx === 5) {
+ logGAevent("daily_quiz_complete", {
+ status_code: quizResult.statusCode,
+ });
+ navigation.navigate("CompleteQuiz", {
+ id: quizResult.statusCode,
+ });
+ } else {
+ navigation.navigate("DailyQuiz");
+ }
+ }}
style={{ width: "90%", alignSelf: "center", marginTop: "7%" }}
/>
diff --git a/TERMTERM/src/screens/ReportWord.tsx b/TERMTERM/src/screens/ReportWord.tsx
index f5503b64..5f0ea87f 100644
--- a/TERMTERM/src/screens/ReportWord.tsx
+++ b/TERMTERM/src/screens/ReportWord.tsx
@@ -23,17 +23,17 @@ const ReportWord = ({ route, navigation }: Props) => {
const [COLOR, mode] = useThemeStyle();
const [reasonType, setReasonType] = useState([
- {label: "저작권 침해, 명예훼손", value: "COPYRIGHT"},
- {label: "개인정보 유출", value: "PERSONAL_INFORMATION"},
- {label: "광고 및 홍보성 내용", value: "ADVERTISEMENT"},
- {label: "용어와 무관한 내용", value: "IRRELEVANT_CONTENT"},
- {label: "사기 또는 거짓 정보", value: "FRAUD"},
- {label: "잘못된 정보 포함", value: "INCORRECT_CONTENT"},
- {label: "혐오 발언 또는 상징", value: "DISGUST"},
- {label: "욕설, 비방, 선정성 등 미풍양속을 해치는 내용", value: "ABUSE"},
- {label: "스팸", value: "SPAM"},
- {label: "기타", value: "OTHER"},
- ])
+ { label: "저작권 침해, 명예훼손", value: "COPYRIGHT" },
+ { label: "개인정보 유출", value: "PERSONAL_INFORMATION" },
+ { label: "광고 및 홍보성 내용", value: "ADVERTISEMENT" },
+ { label: "용어와 무관한 내용", value: "IRRELEVANT_CONTENT" },
+ { label: "사기 또는 거짓 정보", value: "FRAUD" },
+ { label: "잘못된 정보 포함", value: "INCORRECT_CONTENT" },
+ { label: "혐오 발언 또는 상징", value: "DISGUST" },
+ { label: "욕설, 비방, 선정성 등 미풍양속을 해치는 내용", value: "ABUSE" },
+ { label: "스팸", value: "SPAM" },
+ { label: "기타", value: "OTHER" },
+ ]);
const [selectedReason, setSelectedReason] = useState("");
const [etc, setEtc] = useState("");
const [btnPosition, setBtnPosition] = useState(70);
@@ -219,7 +219,7 @@ const LightTitleWrapper = styled.View`
const Title = styled.Text<{ COLOR: colorTheme }>`
${TYPO_STYLE.Body[1].ExtraBold};
- text-align: start;
+ text-align: left;
color: ${(props) => props.COLOR.Text.active};
`;
diff --git a/TERMTERM/src/screens/ReviewQuizResult.tsx b/TERMTERM/src/screens/ReviewQuizResult.tsx
index 0ba125fc..a4ea87e8 100644
--- a/TERMTERM/src/screens/ReviewQuizResult.tsx
+++ b/TERMTERM/src/screens/ReviewQuizResult.tsx
@@ -16,6 +16,7 @@ import {
import QuizAnswerCard from "@components/terms/QuizAnswerCard";
import { eachQuizAnswerResult, quizState } from "@recoil/quizState";
import { useRecoilValue, useSetRecoilState } from "recoil";
+import { logGAevent } from "@utils/analytics";
export type Props = StackScreenProps;
@@ -29,11 +30,17 @@ const ReviewQuizResult = ({ navigation, route }: Props) => {
const handleCompleteButton = () => {
setCurrReviewIdx((prev) => ({ ...prev, currReviewIdx: 0 }));
- navigation.navigate("CompleteQuiz", {id: quizResult.statusCode});
+ logGAevent("review_quiz_complete", {
+ status_code: quizResult.statusCode,
+ });
+ navigation.navigate("CompleteQuiz", { id: quizResult.statusCode });
};
const handleReviewButton = () => {
- setCurrReviewIdx((prev) => ({ ...prev, currReviewIdx: curr.currReviewIdx }));
+ setCurrReviewIdx((prev) => ({
+ ...prev,
+ currReviewIdx: curr.currReviewIdx,
+ }));
navigation.navigate("ReviewQuiz");
};
diff --git a/TERMTERM/src/screens/SelectFolder.tsx b/TERMTERM/src/screens/SelectFolder.tsx
index 9b94bb98..f95944fc 100644
--- a/TERMTERM/src/screens/SelectFolder.tsx
+++ b/TERMTERM/src/screens/SelectFolder.tsx
@@ -100,7 +100,7 @@ const TitleWrapper = styled.View`
`;
const Title = styled.Text<{ COLOR: colorTheme }>`
- text-align: start;
+ text-align: left;
white-space: pre-line;
word-break: keep-all;
${TYPO_STYLE.Body[1].ExtraBold};
diff --git a/TERMTERM/src/screens/Support/First.tsx b/TERMTERM/src/screens/Support/First.tsx
index 03d1c55c..7ac6ac9c 100644
--- a/TERMTERM/src/screens/Support/First.tsx
+++ b/TERMTERM/src/screens/Support/First.tsx
@@ -188,7 +188,7 @@ const TitleWrapper = styled.View`
const Title = styled.Text<{ COLOR: colorTheme }>`
${TYPO_STYLE.Body[1].ExtraBold};
- text-align: start;
+ text-align: left;
color: ${(props) => props.COLOR.Text.active};
`;
diff --git a/TERMTERM/src/screens/Toolbar/Search.tsx b/TERMTERM/src/screens/Toolbar/Search.tsx
index 92a36b5e..4c8c2ba3 100644
--- a/TERMTERM/src/screens/Toolbar/Search.tsx
+++ b/TERMTERM/src/screens/Toolbar/Search.tsx
@@ -18,6 +18,7 @@ import { useFolder } from "@hooks/useFolder";
import { useCuration } from "@hooks/useCuration";
import { useMember } from "@hooks/useMember";
import { Category } from "Curation";
+import { logGAevent } from "@utils/analytics";
export type Props = StackScreenProps;
@@ -34,6 +35,7 @@ const Search = ({ navigation }: Props) => {
const handleSearch = async (keyword: string) => {
await searchTerm(keyword);
+ logGAevent("search_query_cnt");
if (keyword !== "") setRecords([...records, keyword]);
};
diff --git a/TERMTERM/src/utils/analytics.ts b/TERMTERM/src/utils/analytics.ts
new file mode 100644
index 00000000..e1753c9e
--- /dev/null
+++ b/TERMTERM/src/utils/analytics.ts
@@ -0,0 +1,8 @@
+import analytics from "@react-native-firebase/analytics";
+
+export const logGAevent = async (
+ eventName: string,
+ params?: Record
+) => {
+ await analytics().logEvent(eventName, params);
+};
diff --git a/TERMTERM/yarn.lock b/TERMTERM/yarn.lock
index f806daf3..e49e0752 100644
--- a/TERMTERM/yarn.lock
+++ b/TERMTERM/yarn.lock
@@ -1539,19 +1539,12 @@
dependencies:
"@hapi/hoek" "^11.0.2"
-"@jest/create-cache-key-function@^29.0.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-29.4.3.tgz#ea37769f69523019d81ee089a25a62550f209eb7"
- integrity sha512-AJVFQTTy6jnZAQiAZrdOaTAPzJUrvAE/4IMe+Foav6WPhypFszqg7a4lOTyuzYQEEiT5RSrGYg9IY+/ivxiyXw==
- dependencies:
- "@jest/types" "^29.4.3"
-
-"@jest/schemas@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788"
- integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==
+"@jest/create-cache-key-function@^27.0.1":
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz#7448fae15602ea95c828f5eceed35c202a820b31"
+ integrity sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==
dependencies:
- "@sinclair/typebox" "^0.25.16"
+ "@jest/types" "^27.5.1"
"@jest/types@^26.6.2":
version "26.6.2"
@@ -1575,18 +1568,6 @@
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
-"@jest/types@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f"
- integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==
- dependencies:
- "@jest/schemas" "^29.4.3"
- "@types/istanbul-lib-coverage" "^2.0.0"
- "@types/istanbul-reports" "^3.0.0"
- "@types/node" "*"
- "@types/yargs" "^17.0.8"
- chalk "^4.0.0"
-
"@jridgewell/gen-mapping@^0.1.0":
version "0.1.1"
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
@@ -1731,7 +1712,7 @@
dependencies:
serve-static "^1.13.1"
-"@react-native-community/cli-doctor@^9.2.1":
+"@react-native-community/cli-doctor@^9.3.0":
version "9.3.0"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-9.3.0.tgz#8817a3fd564453467def5b5bc8aecdc4205eff50"
integrity sha512-/fiuG2eDGC2/OrXMOWI5ifq4X1gdYTQhvW2m0TT5Lk1LuFiZsbTCp1lR+XILKekuTvmYNjEGdVpeDpdIWlXdEA==
@@ -1753,31 +1734,18 @@
sudo-prompt "^9.0.0"
wcwidth "^1.0.1"
-"@react-native-community/cli-hermes@^9.2.1":
- version "9.3.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-9.3.1.tgz#569d27c1effd684ba451ad4614e29a99228cec49"
- integrity sha512-Mq4PK8m5YqIdaVq5IdRfp4qK09aVO+aiCtd6vjzjNUgk1+1X5cgUqV6L65h4N+TFJYJHcp2AnB+ik1FAYXvYPQ==
+"@react-native-community/cli-hermes@^9.3.1":
+ version "9.3.4"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-9.3.4.tgz#47851847c4990272687883bd8bf53733d5f3c341"
+ integrity sha512-VqTPA7kknCXgtYlRf+sDWW4yxZ6Gtg1Ga+Rdrn1qSKuo09iJ8YKPoQYOu5nqbIYJQAEhorWQyo1VvNgd0wd49w==
dependencies:
- "@react-native-community/cli-platform-android" "^9.3.1"
+ "@react-native-community/cli-platform-android" "^9.3.4"
"@react-native-community/cli-tools" "^9.2.1"
chalk "^4.1.2"
hermes-profile-transformer "^0.0.6"
ip "^1.1.5"
-"@react-native-community/cli-platform-android@9.2.1":
- version "9.2.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-9.2.1.tgz#cd73cb6bbaeb478cafbed10bd12dfc01b484d488"
- integrity sha512-VamCZ8nido3Q3Orhj6pBIx48itORNPLJ7iTfy3nucD1qISEDih3DOzCaQCtmqdEBgUkNkNl0O+cKgq5A3th3Zg==
- dependencies:
- "@react-native-community/cli-tools" "^9.2.1"
- chalk "^4.1.2"
- execa "^1.0.0"
- fs-extra "^8.1.0"
- glob "^7.1.3"
- logkitty "^0.7.1"
- slash "^3.0.0"
-
-"@react-native-community/cli-platform-android@^9.3.1":
+"@react-native-community/cli-platform-android@9.3.1":
version "9.3.1"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.1.tgz#378cd72249653cc74672094400657139f21bafb8"
integrity sha512-m0bQ6Twewl7OEZoVf79I2GZmsDqh+Gh0bxfxWgwxobsKDxLx8/RNItAo1lVtTCgzuCR75cX4EEO8idIF9jYhew==
@@ -1790,18 +1758,20 @@
logkitty "^0.7.1"
slash "^3.0.0"
-"@react-native-community/cli-platform-ios@9.2.1":
- version "9.2.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.2.1.tgz#d90740472216ffae5527dfc5f49063ede18a621f"
- integrity sha512-dEgvkI6CFgPk3vs8IOR0toKVUjIFwe4AsXFvWWJL5qhrIzW9E5Owi0zPkSvzXsMlfYMbVX0COfVIK539ZxguSg==
+"@react-native-community/cli-platform-android@^9.3.4":
+ version "9.3.4"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.4.tgz#42f22943b6ee15713add6af8608c1d0ebf79d774"
+ integrity sha512-BTKmTMYFuWtMqimFQJfhRyhIWw1m+5N5svR1S5+DqPcyFuSXrpNYDWNSFR8E105xUbFANmsCZZQh6n1WlwMpOA==
dependencies:
"@react-native-community/cli-tools" "^9.2.1"
chalk "^4.1.2"
execa "^1.0.0"
+ fs-extra "^8.1.0"
glob "^7.1.3"
- ora "^5.4.1"
+ logkitty "^0.7.1"
+ slash "^3.0.0"
-"@react-native-community/cli-platform-ios@^9.3.0":
+"@react-native-community/cli-platform-ios@9.3.0", "@react-native-community/cli-platform-ios@^9.3.0":
version "9.3.0"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.3.0.tgz#45abde2a395fddd7cf71e8b746c1dc1ee2260f9a"
integrity sha512-nihTX53BhF2Q8p4B67oG3RGe1XwggoGBrMb6vXdcu2aN0WeXJOXdBLgR900DAA1O8g7oy1Sudu6we+JsVTKnjw==
@@ -1865,16 +1835,16 @@
dependencies:
joi "^17.2.1"
-"@react-native-community/cli@9.2.1":
- version "9.2.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-9.2.1.tgz#15cc32531fc323d4232d57b1f2d7c571816305ac"
- integrity sha512-feMYS5WXXKF4TSWnCXozHxtWq36smyhGaENXlkiRESfYZ1mnCUlPfOanNCAvNvBqdyh9d4o0HxhYKX1g9l6DCQ==
+"@react-native-community/cli@9.3.2":
+ version "9.3.2"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-9.3.2.tgz#81761880af00c1894d85380d8c9a358659865204"
+ integrity sha512-IAW4X0vmX/xozNpp/JVZaX7MrC85KV0OP2DF4o7lNGOfpUhzJAEWqTfkxFYS+VsRjZHDve4wSTiGIuXwE7FG1w==
dependencies:
"@react-native-community/cli-clean" "^9.2.1"
"@react-native-community/cli-config" "^9.2.1"
"@react-native-community/cli-debugger-ui" "^9.0.0"
- "@react-native-community/cli-doctor" "^9.2.1"
- "@react-native-community/cli-hermes" "^9.2.1"
+ "@react-native-community/cli-doctor" "^9.3.0"
+ "@react-native-community/cli-hermes" "^9.3.1"
"@react-native-community/cli-plugin-metro" "^9.2.1"
"@react-native-community/cli-server-api" "^9.2.1"
"@react-native-community/cli-tools" "^9.2.1"
@@ -1893,6 +1863,19 @@
resolved "https://registry.yarnpkg.com/@react-native-community/masked-view/-/masked-view-0.1.11.tgz#2f4c6e10bee0786abff4604e39a37ded6f3980ce"
integrity sha512-rQfMIGSR/1r/SyN87+VD8xHHzDYeHaJq6elOSCAD+0iLagXkSI2pfA0LmSXP21uw5i3em7GkkRjfJ8wpqWXZNw==
+"@react-native-firebase/analytics@^18.5.0":
+ version "18.5.0"
+ resolved "https://registry.yarnpkg.com/@react-native-firebase/analytics/-/analytics-18.5.0.tgz#cca5858e44f3f8cbf387fa7cd6debb95fbcf8023"
+ integrity sha512-+8fkDedcftieOBEkNdqEW0lS/FB9SKzfUc3yYXnJcLTy3Ceg9JZga/tWz4BGbbxPddUy1Sm2UuWDuOxsdkFUyA==
+
+"@react-native-firebase/app@^18.5.0":
+ version "18.5.0"
+ resolved "https://registry.yarnpkg.com/@react-native-firebase/app/-/app-18.5.0.tgz#198a133229d1b8710f257e76d9703dcb7e4cd6e0"
+ integrity sha512-AhHQi5KFDlKZn/lH7rEYtLfpsGamEq+P/cXZWcNPcP0WGlmi++abk7Pxnn4MjnG7TNhEyG/C9uq//qb6VhXaZg==
+ dependencies:
+ opencollective-postinstall "^2.0.1"
+ superstruct "^0.6.2"
+
"@react-native/assets@1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e"
@@ -1995,11 +1978,6 @@
component-type "^1.2.1"
join-component "^1.1.0"
-"@sinclair/typebox@^0.25.16":
- version "0.25.23"
- resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.23.tgz#1c15b0d2b872d89cc0f47c7243eacb447df8b8bd"
- integrity sha512-VEB8ygeP42CFLWyAJhN5OklpxUliqdNEUcXb4xZ/CINqtYGTjL5ukluKdKzQ0iWdUxyQ7B0539PAUhHKrCNWSQ==
-
"@types/hammerjs@^2.0.36":
version "2.0.41"
resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.41.tgz#f6ecf57d1b12d2befcce00e928a6a097c22980aa"
@@ -2125,13 +2103,6 @@
dependencies:
"@types/yargs-parser" "*"
-"@types/yargs@^17.0.8":
- version "17.0.22"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.22.tgz#7dd37697691b5f17d020f3c63e7a45971ff71e9a"
- integrity sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==
- dependencies:
- "@types/yargs-parser" "*"
-
"@urql/core@2.3.6":
version "2.3.6"
resolved "https://registry.yarnpkg.com/@urql/core/-/core-2.3.6.tgz#ee0a6f8fde02251e9560c5f17dce5cd90f948552"
@@ -2195,6 +2166,16 @@ aggregate-error@^3.0.0:
clean-stack "^2.0.0"
indent-string "^4.0.0"
+ajv@^8.11.0:
+ version "8.12.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1"
+ integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+ uri-js "^4.2.2"
+
anser@^1.4.9:
version "1.4.10"
resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.10.tgz#befa3eddf282684bd03b63dcda3927aef8c2e35b"
@@ -2868,6 +2849,16 @@ cliui@^7.0.2:
strip-ansi "^6.0.0"
wrap-ansi "^7.0.0"
+clone-deep@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713"
+ integrity sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==
+ dependencies:
+ for-own "^1.0.0"
+ is-plain-object "^2.0.4"
+ kind-of "^6.0.0"
+ shallow-clone "^1.0.0"
+
clone-deep@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
@@ -3559,6 +3550,14 @@ expo-asset@~8.7.0:
path-browserify "^1.0.0"
url-parse "^1.5.9"
+expo-build-properties@~0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.4.1.tgz#f2511d281898657b225710051860d71c63b9ad5e"
+ integrity sha512-Y492KoSfb8Jj5y8qA+J0Wu0HjuCmJuqCB7fxOAxqNDS5V8JJNUU9106ESDnlQ7xyxkjMlGmVZN1/oRUoC0zBJg==
+ dependencies:
+ ajv "^8.11.0"
+ semver "^7.3.5"
+
expo-constants@~14.0.0, expo-constants@~14.0.2:
version "14.0.2"
resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-14.0.2.tgz#2cb1dec8f41a64c2fc5b4eecaf77d7661cad01cc"
@@ -3567,6 +3566,44 @@ expo-constants@~14.0.0, expo-constants@~14.0.2:
"@expo/config" "~7.0.2"
uuid "^3.3.2"
+expo-dev-client@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/expo-dev-client/-/expo-dev-client-2.0.1.tgz#f5878807c96a60d90fc219b6535654cb6ddb9214"
+ integrity sha512-+OXXZKKo/CplqklpaZasHAX7qaRrzC83biqXTFa1z5NiFW41uqtAqTFx6gmPi4kx3YgwtD+ep6R3SRrKjdCukg==
+ dependencies:
+ expo-dev-launcher "2.0.2"
+ expo-dev-menu "2.0.2"
+ expo-dev-menu-interface "1.0.0"
+ expo-manifests "~0.4.0"
+ expo-updates-interface "~0.8.0"
+
+expo-dev-launcher@2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/expo-dev-launcher/-/expo-dev-launcher-2.0.2.tgz#bbcde0dd35e81ed6a415dc5b246da68e9b365255"
+ integrity sha512-MQT7VSOHJQrEs3YAv5BQLYs3Uk7P1dNqBw6kKrj3jKBq0z92k2LLg1aCk7nP8OGJVDvrb2jTXBka8VXVqF0ECg==
+ dependencies:
+ expo-dev-menu "2.0.2"
+ resolve-from "^5.0.0"
+ semver "^7.3.5"
+
+expo-dev-menu-interface@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/expo-dev-menu-interface/-/expo-dev-menu-interface-1.0.0.tgz#00204cb7e1c43cc8a4eee9cb74f6e5760b512d75"
+ integrity sha512-4lsVofTwV9oBM+zo7XhtmvbfiXD4I7I3Rqns6U0i6IOnH7OGBDpKvGZ5YikWPFGn6NOu8loqqd8S7inFIaxC0A==
+
+expo-dev-menu@2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/expo-dev-menu/-/expo-dev-menu-2.0.2.tgz#9a2d7a00097d4eafe54cf8e9a5c727174e101e4c"
+ integrity sha512-SxR5riXgm+VVKsDKC/bOLuOJ0CKutW07G+OqJ9eYfxwGfxa8omLJHwagbCsd8FwUPGkzvzgfRJRGLo5J6REMow==
+ dependencies:
+ expo-dev-menu-interface "1.0.0"
+ semver "^7.3.5"
+
+expo-eas-client@~0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.4.1.tgz#4ccdafb5faeac97394fb3fa4c777ec22b2017f1d"
+ integrity sha512-bIj2rm6lw/iZAOAW5CSAxshSXi2oY+ORpHRp4ZdqSDuwA0RIa9jGyMm1Jhostjjz5y9k2uur5vtVqq6P3Bwx/Q==
+
expo-error-recovery@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/expo-error-recovery/-/expo-error-recovery-4.0.1.tgz#3e3333e134c992c234539d3773fe78915c883755"
@@ -3603,11 +3640,23 @@ expo-image-picker@^14.1.1:
dependencies:
expo-image-loader "~4.1.0"
+expo-json-utils@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/expo-json-utils/-/expo-json-utils-0.4.0.tgz#47ae83a1cc973101d62371f94790e9ad39491751"
+ integrity sha512-lK6gjea72XTYafpKNNJaMrBK5dYAX8LFLXrp/M1MKJU4Zy7EHd2rKrLwop3GZts8VdwLHeVcMko79SAbhe3i5Q==
+
expo-keep-awake@~11.0.1:
version "11.0.1"
resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-11.0.1.tgz#ee354465892a94040ffe09901b85b469e7d54fb3"
integrity sha512-44ZjgLE4lnce2d40Pv8xsjMVc6R5GvgHOwZfkLYtGmgYG9TYrEJeEj5UfSeweXPL3pBFhXKfFU8xpGYMaHdP0A==
+expo-manifests@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/expo-manifests/-/expo-manifests-0.4.0.tgz#6fd44b6427e113f2eb9409ca46df95cbbea068df"
+ integrity sha512-IdZjIYDxx4nH0Gb3X4T4/2YknmR/jSLxymAS0m7SfJ9V7Vlu/y0p3lNwUys9/JzihxX9PDIuOi/Y4/uqL6TlXg==
+ dependencies:
+ expo-json-utils "~0.4.0"
+
expo-modules-autolinking@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.0.2.tgz#f072f342ab797e43b16ddcdef251fcd4db851e1a"
@@ -3632,7 +3681,7 @@ expo-sharing@~11.0.1:
resolved "https://registry.yarnpkg.com/expo-sharing/-/expo-sharing-11.0.1.tgz#a2c6beb7458e04762a53b584c3b7b79ae422e2da"
integrity sha512-GlI2+fRxfdCNUftFPfqhbCSd6OQaVf/WNAADWZnRanRQRbQdQjM6L0oMmUTwQStc36cmzl+vGgNlouwdmTDseA==
-expo-splash-screen@^0.17.5:
+expo-splash-screen@~0.17.5:
version "0.17.5"
resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.17.5.tgz#a18dc59c1cc28ebbedbf0a7529a419d18ab0b311"
integrity sha512-ejSO78hwHXz8T9u8kh8t4r6CR4h70iBvA65gX8GK+dYxZl6/IANPbIb2VnUpND9vqfW+JnkDw+ZFst+gDnkpcQ==
@@ -3645,10 +3694,38 @@ expo-status-bar@~1.4.2:
resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.4.2.tgz#14f2b9a6dc7d550578421f07e0046f5fafc2b403"
integrity sha512-ZWjO6D4ARGYfAd3SWDD3STNudHDhyBZDZjhhseqoEmsf7bS9ykny8KKOhlzJW24qIQNPhkgdvHhaw9fQwMJy3Q==
-expo@~47.0.12:
- version "47.0.13"
- resolved "https://registry.yarnpkg.com/expo/-/expo-47.0.13.tgz#f53f82e7f9e209f8a8b25f2493f58439958368cb"
- integrity sha512-9VjjGdViCJ9NfWbUE7brkwFBDvKuA35V345vMtHFYNKoGJjXib36yitmawreMDQFv0kMTqTnzc7T2191Pod7Ng==
+expo-structured-headers@~3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/expo-structured-headers/-/expo-structured-headers-3.0.1.tgz#291596c61acd2a45839ad6c6798c3d5cfc1eb4e9"
+ integrity sha512-x6hkzuQL5HJoyB+xQyBf9M04ZUmrjFWqEW7gzIYWN/6LA+dgyaV4fF6U9++Re+GgGjF03vHJFqR1xYaosKKZYQ==
+
+expo-updates-interface@~0.8.0:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.8.1.tgz#baeeeb01a77439682432be83ba78bc2e00547c4e"
+ integrity sha512-1TPFCTQFHMZbltFGnxig3PbN/b6nO4T0RyL8XqdmYvQY0ElOCprZXQQ8vNDqeLYHgausG1lD4OyJwFzh2SNBSA==
+
+expo-updates@~0.15.6:
+ version "0.15.6"
+ resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.15.6.tgz#99e3faa3e38312ebddb77afb697863fa1f1f6a03"
+ integrity sha512-g5BuCmWdyiLqFaVkVz+m7r6U7MHJrLKvqybs04H6ArMNpTEf6FhUwSzmnCyOkSSP35KFNkC/I0dYlgW3Vcf1sw==
+ dependencies:
+ "@expo/code-signing-certificates" "0.0.5"
+ "@expo/config" "~7.0.2"
+ "@expo/config-plugins" "~5.0.3"
+ "@expo/metro-config" "~0.5.0"
+ arg "4.1.0"
+ expo-eas-client "~0.4.0"
+ expo-manifests "~0.4.0"
+ expo-structured-headers "~3.0.0"
+ expo-updates-interface "~0.8.0"
+ fbemitter "^3.0.0"
+ resolve-from "^5.0.0"
+ uuid "^3.4.0"
+
+expo@~47.0.14:
+ version "47.0.14"
+ resolved "https://registry.yarnpkg.com/expo/-/expo-47.0.14.tgz#3386d82d56f0827d1c5661aec5eae7d2b7dea43e"
+ integrity sha512-WA6BbLI00R9TweBHRVm+kAFoYqkYOK4oMizNV2CmpxEJaRm8J4R9KI2+WnfkYVPiW6dzDTUR4bG6yAwgzSowEA==
dependencies:
"@babel/runtime" "^7.14.0"
"@expo/cli" "0.4.11"
@@ -3704,7 +3781,7 @@ extglob@^2.0.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-fast-deep-equal@^3.1.3:
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
@@ -3879,11 +3956,23 @@ fontfaceobserver@^2.1.0:
resolved "https://registry.yarnpkg.com/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz#5fb392116e75d5024b7ec8e4f2ce92106d1488c8"
integrity sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==
-for-in@^1.0.2:
+for-in@^0.1.3:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1"
+ integrity sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==
+
+for-in@^1.0.1, for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==
+for-own@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
+ integrity sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==
+ dependencies:
+ for-in "^1.0.1"
+
form-data@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
@@ -4721,6 +4810,11 @@ json-schema-deref-sync@^0.13.0:
traverse "~0.6.6"
valid-url "~1.0.9"
+json-schema-traverse@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+ integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
json5@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
@@ -4780,7 +4874,7 @@ kind-of@^5.0.0:
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-kind-of@^6.0.0, kind-of@^6.0.2:
+kind-of@^6.0.0, kind-of@^6.0.1, kind-of@^6.0.2:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
@@ -5400,6 +5494,14 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
+mixin-object@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e"
+ integrity sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==
+ dependencies:
+ for-in "^0.1.3"
+ is-extendable "^0.1.1"
+
mkdirp@^0.5.1, mkdirp@~0.5.1:
version "0.5.6"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
@@ -5676,6 +5778,11 @@ open@^8.0.4, open@^8.3.0:
is-docker "^2.1.1"
is-wsl "^2.2.0"
+opencollective-postinstall@^2.0.1:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
+ integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
+
ora@3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318"
@@ -5945,7 +6052,7 @@ promise@^7.1.1:
dependencies:
asap "~2.0.3"
-promise@^8.0.3:
+promise@^8.3.0:
version "8.3.0"
resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a"
integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==
@@ -5982,6 +6089,11 @@ pump@^3.0.0:
end-of-stream "^1.1.0"
once "^1.3.1"
+punycode@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
+ integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
+
qrcode-terminal@0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz#ffc6c28a2fc0bfb47052b47e23f4f446a5fbdb9e"
@@ -6233,15 +6345,15 @@ react-native-webview@11.23.1:
escape-string-regexp "2.0.0"
invariant "2.2.4"
-react-native@0.70.5:
- version "0.70.5"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.70.5.tgz#f60540b21d338891086e0a834e331c124dd1f55c"
- integrity sha512-5NZM80LC3L+TIgQX/09yiyy48S73wMgpIgN5cCv3XTMR394+KpDI3rBZGH4aIgWWuwijz31YYVF5504+9n2Zfw==
+react-native@0.70.8:
+ version "0.70.8"
+ resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.70.8.tgz#aa9aae8e6291589908db74fe69e0ec1d9a9c5490"
+ integrity sha512-O3ONJed9W/VEEVWsbZcwyMDhnEvw7v9l9enqWqgbSGLzHfh6HeIGMCNmjz+kRsHnC7AiF47fupWfgYX7hNnhoQ==
dependencies:
- "@jest/create-cache-key-function" "^29.0.3"
- "@react-native-community/cli" "9.2.1"
- "@react-native-community/cli-platform-android" "9.2.1"
- "@react-native-community/cli-platform-ios" "9.2.1"
+ "@jest/create-cache-key-function" "^27.0.1"
+ "@react-native-community/cli" "9.3.2"
+ "@react-native-community/cli-platform-android" "9.3.1"
+ "@react-native-community/cli-platform-ios" "9.3.0"
"@react-native/assets" "1.0.0"
"@react-native/normalize-color" "2.0.0"
"@react-native/polyfills" "2.0.0"
@@ -6258,7 +6370,7 @@ react-native@0.70.5:
mkdirp "^0.5.1"
nullthrows "^1.1.1"
pretty-format "^26.5.2"
- promise "^8.0.3"
+ promise "^8.3.0"
react-devtools-core "4.24.0"
react-native-codegen "^0.70.6"
react-native-gradle-plugin "^0.70.3"
@@ -6659,6 +6771,15 @@ setprototypeof@1.2.0:
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+shallow-clone@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571"
+ integrity sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==
+ dependencies:
+ is-extendable "^0.1.1"
+ kind-of "^5.0.0"
+ mixin-object "^2.0.1"
+
shallow-clone@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
@@ -7008,6 +7129,14 @@ sudo-prompt@^9.0.0:
resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.2.1.tgz#77efb84309c9ca489527a4e749f287e6bdd52afd"
integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==
+superstruct@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.6.2.tgz#c5eb034806a17ff98d036674169ef85e4c7f6a1c"
+ integrity sha512-lvA97MFAJng3rfjcafT/zGTSWm6Tbpk++DP6It4Qg7oNaeM+2tdJMuVgGje21/bIpBEs6iQql1PJH6dKTjl4Ig==
+ dependencies:
+ clone-deep "^2.0.1"
+ kind-of "^6.0.1"
+
supports-color@^5.3.0, supports-color@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -7371,6 +7500,13 @@ update-browserslist-db@^1.0.10:
escalade "^3.1.1"
picocolors "^1.0.0"
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
urijs@^1.19.6:
version "1.19.11"
resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc"