Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ksw_devlog

TIL 02.23 - 최종 프로젝트 3주차 비로그인시... 본문

TIL

TIL 02.23 - 최종 프로젝트 3주차 비로그인시...

kimcoach 2023. 2. 23. 23:50
비로그인시 홈 화면 조정

 

const [init, setInit] = useState(false);
  // 처음에는 false이고 나중에 사용자 존재 판명이 모두 끝났을 때 true를 통해 해당 화면을 render
  const [isLoggedIn, setIsLoggedIn] = useState(false);
  useEffect(() => {
    authService.onAuthStateChanged((user) => {
      // user 판명을 듣고
      if (user) {
        // 있으면
        setIsLoggedIn(true); // 로그인 됨
      } else {
        setIsLoggedIn(false); // 로그인 안됨
      }
      setInit(true); // user 판명 끝
    });
  }, []);
  return (
    <FullScreen>
      <MocoChat />
      <HomeBanner />
      <MainBackground>
      {init ? (
        <>
          <HomeGuideText isLoggedIn={isLoggedIn} currentUser={currentUser} />
          <RecommendListContainer>
            <RecommendListCardBox>
              {data?.slice(0, 3).map((item, idx) => (
                <CardSection 
                  key={idx}
                  item={item}
                />
              ))}
            </RecommendListCardBox>
          </RecommendListContainer>
          <HomeMeetingList
            isLoggedIn={isLoggedIn}
            recommendTechList={recommendTechList}
            recommendTimeList={recommendTimeList}
            recommendLocationList={recommendLocationList}
          />
        </>
      ) : (
        <>
         ...
        </>
      )}
      <HomeNewMeetingList data={data} />
      <HomeAllBtn />
      </MainBackground>
      {/* 신규 유저면 모달 오픈 */}
      <Modal open={isModalOpen} centered={true} closable={false} footer={false}>
        <AddInfoModal handleModalClose={handleModalClose} />
      </Modal>
    </FullScreen>
  );
const HomeMeetingList = ({
  isLoggedIn,
  recommendTechList,
  recommendTimeList,
  recommendLocationList,
}) => {
  // 로그인 안 됐을 때 리스트
  const blurList = [1, 2, 3, 4];
  return (
    <MeetingArea>
      {isLoggedIn ? (
        <>
          <TechAndTimeMeetingArea>
            <TechStackMeeting recommendTechList={recommendTechList} />
          </TechAndTimeMeetingArea>
          <TimeMeeting recommendTimeList={recommendTimeList} />
          <LocationMeeting recommendLocationList={recommendLocationList} />
        </>
      ) : (
        <>
          <HomeBlurList blurList={blurList} />
        </>
      )}
    </MeetingArea>
  );
};

 

참고자료 :

https://goforit.tistory.com/78

 

20210404 React and Firebase03 계정 생성, 로그인, Auth, createuserwithemailandpassword, setPersistence, onAuthStateChanged

Nomadcoder 노마드코더 : 트위터 클론 수업 노마드코더님의 강의를 들으면서 공부한 내용을 정리하는 용도로 작성되었으며, 본내용이 틀릴 수 도 있습니다. Creating Account Provider Auth provider EmailAuthProv

goforit.tistory.com