기획 의도 및 기능
다양한 안전 기능을 통한 실질적 안전과 공감하는 상호 소통을 통한 심리적 안정감을 함께 제공하는 여성들을 위한 안전 앱
주요 기능
구현
온보딩
가입
신고기능
설정
안전모드 기능
통화 기능
회고
•
폴더 구조 리팩토링
폴더 구조 이미지
•
Redux-toolkit → AsyncStorage 변경
•
Axios Instance 활용
// api/Api.js
import axios from "axios";
import AsyncStorage from "@react-native-async-storage/async-storage";
const BASE_URL = "https://teamcyan.com:9200";
const instance = axios.create({
baseURL: BASE_URL,
headers: {},
});
instance.interceptors.request.use(
async function (config) {
const idToken = await AsyncStorage.getItem("idToken");
if (idToken) config.headers.Authorization = `Bearer ${idToken}`;
return config;
},
function (error) {
return Promise.reject(error);
}
);
instance.interceptors.response.use(
function (response) {
return response;
},
function (error) {
return Promise.reject(error);
}
);
export const axiosInstance = instance;
JavaScript
복사
// api/HomeApi.js
import { axiosInstance } from "./Api";
const SERVER_LINK = "https://teamcyan.com:9200";
const HOME = `${SERVER_LINK}/home`;
export class HomeApi {
// 로그인 후 홈 화면
static async getData() {
try {
const response = await axiosInstance.get(`${HOME}`);
return response;
} catch (error) {
console.error(error);
}
}
JavaScript
복사
// hooks/queries/safemode/useGetRecentLoc.js
import { useQuery } from "@tanstack/react-query";
import { SafemodeApi } from "../../../api/SafemodeApi";
const useGetRecentLoc = () => {
const { data: recentLoc = [] } = useQuery({
queryKey: ["recentLoc"],
queryFn: () => SafemodeApi.getRecentLoc(),
onSuccess: (data) => {
console.log(data);
},
onError: (error) => {
console.error(error);
},
});
return recentLoc;
};
export default useGetRecentLoc;
JavaScript
복사