@ihabdevteam/core 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,6 +18,12 @@ export function useDailyTrainingSelection(userId) {
18
18
  const yesterdayRef = useRef(null);
19
19
  const [loaded, setLoaded] = useState(false);
20
20
  const [showYesterday, setShowYesterday] = useState(false);
21
+ // 선택을 ref 에 담으면 바뀌어도 리렌더가 없다. loaded 만으로는 신호가 안 되는데,
22
+ // 두 번째 이후 계산에서는 이미 true 라 setLoaded(true) 가 그대로 빠져나가기 때문이다.
23
+ // 그 경우가 로그인 직후다: userId 가 undefined → 실제 id 로 바뀌면 refs 는 그 사람의
24
+ // 선택으로 갱신되지만 화면은 익명 선택을 계속 보여준다(실측: 모두가 같은 묶음을 받음).
25
+ // 계산이 끝날 때마다 올리는 이 값이 리렌더를 보장한다.
26
+ const [revision, setRevision] = useState(0);
21
27
  useEffect(() => {
22
28
  let cancelled = false;
23
29
  let timer;
@@ -38,6 +44,7 @@ export function useDailyTrainingSelection(userId) {
38
44
  todayRef.current = sel.today;
39
45
  yesterdayRef.current = sel.yesterday;
40
46
  setLoaded(true);
47
+ setRevision(n => n + 1);
41
48
  cancelled = true;
42
49
  stop();
43
50
  };
@@ -82,6 +89,6 @@ export function useDailyTrainingSelection(userId) {
82
89
  ? src[typeKey]
83
90
  : (fallback?.[typeKey]?.length ? fallback[typeKey] : undefined);
84
91
  return pick;
85
- }, [showYesterday]);
92
+ }, [showYesterday, revision]);
86
93
  return { loaded, showYesterday, setShowYesterday, getTrainingPerType };
87
94
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ihabdevteam/core",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "private": false,
5
5
  "main": "dist/ihabdevteam-core.cjs.js",
6
6
  "module": "dist/ihabdevteam-core.esm.js",