@ihabdevteam/core 0.237.0 → 0.239.0
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.
- package/CHANGELOG.md +58 -0
- package/dist/components.cjs.js +12 -12
- package/dist/hooks.cjs.js +1 -1
- package/dist/i18n.cjs.js +1 -1
- package/dist/ihabdevteam-core.cjs.js +15 -15
- package/dist/ihabdevteam-core.d.ts +1 -1
- package/dist/packages/core/src/components/Table.js +53 -12
- package/dist/packages/core/src/version.d.ts +1 -1
- package/dist/packages/core/src/version.js +1 -1
- package/dist/utils.cjs.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,64 @@ All notable changes to this project will be documented in this file.
|
|
|
7
7
|
> 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
|
|
8
8
|
> 제 이야기를 못 찾는다.
|
|
9
9
|
|
|
10
|
+
## 0.239.0
|
|
11
|
+
|
|
12
|
+
### 표 굴림통 — **넘치나는 상자 크기가 아니다.** 보개만으로는 못 잡는다
|
|
13
|
+
|
|
14
|
+
0.238.0 으로도 안 켜졌다. 말귀가 섬유를 열어 재 준 값이 길을 좁혔다 — 마디도 `ref` 도 다
|
|
15
|
+
제자리이고 보개도 살아 있는데 **아무 일도 안 일어난다.**
|
|
16
|
+
|
|
17
|
+
까닭은 **재는 것과 듣는 것이 다른 것**이기 때문이다.
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
넘치나 scrollWidth > clientWidth ← 내용이 얼마나 넓은가
|
|
21
|
+
ResizeObserver 상자가 바뀔 때만 운다 ← 상자가 얼마나 넓은가
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
`.table` 은 `width: 100%` 다 — **칸이 넘쳐도 제 상자는 통을 안 넘는다.** 넘침은 그 안의
|
|
25
|
+
칸들이 만들고, `.table` 의 상자도 통의 상자도 **안 바뀐 채** `scrollWidth` 만 자란다. 그러면
|
|
26
|
+
보개는 살아서 지금 마디를 보면서도 **울 까닭이 없다.** 말귀가 본 모습이 설명 없이 성립한다.
|
|
27
|
+
|
|
28
|
+
받는 도중에 붙으면 더 그렇다 — 글꼴·내용이 앉기 전에 재어 아직 안 자란 `scrollWidth` 를
|
|
29
|
+
보고, 그 뒤 **상자가 더 안 바뀌면 영영 그 값으로 남는다.**
|
|
30
|
+
|
|
31
|
+
그래서 보개와 **무관한 길 둘**을 더 둔다.
|
|
32
|
+
|
|
33
|
+
- **창 크기를 따로 듣는다**(`resize`). 가장 흔한 바뀜이고 보개를 안 거친다.
|
|
34
|
+
- **자리잡기 뒤에 한 번 더 잰다**(`requestAnimationFrame`). 너무 일찍 잰 값을 덮는다.
|
|
35
|
+
|
|
36
|
+
보개와 매 렌더 안전줄은 그대로 둔다 — 넷 중 **어느 하나만 울어도** 맞는 값이 된다.
|
|
37
|
+
|
|
38
|
+
> 0.236.0 부터 네 판째다. 처음에 `ResizeObserver` 하나로 될 일이라 본 것이 틀렸다 —
|
|
39
|
+
> 재는 값(`scrollWidth`)과 보개가 듣는 값(상자)이 다르다는 것을 **지금까지 안 봤다.**
|
|
40
|
+
|
|
41
|
+
## 0.238.0
|
|
42
|
+
|
|
43
|
+
### 표 굴림통 — **보개의 목숨을 `ref` 하나가 쥔다.** 0.237.0 도 모자랐다
|
|
44
|
+
|
|
45
|
+
말귀가 0.237.0 을 깔고 그 순서를 다시 밟았는데 **그대로 안 켜졌다.** 이번에는 하나 더 쟀다 —
|
|
46
|
+
**통의 제 폭을 손으로 흔들어도 안 울린다.** 통 자신의 상자가 바뀌는데 안 울린다면 **그 마디를
|
|
47
|
+
보는 보개가 아예 없다**는 뜻이고, 화면을 떠났다 오면(마디가 갈려 `ref` 가 다시 불린다)
|
|
48
|
+
되살아난다. 그 셋이 한 곳을 가리켰다.
|
|
49
|
+
|
|
50
|
+
0.237.0 은 **`ref` 콜백이 보개를 세우고 `useEffect` 의 뒷정리가 거두게** 두었다. 그 둘은 차례가
|
|
51
|
+
묶여 있지 않다 — 새 마디의 `ref` 가 불린 **뒤에** 옛 것의 뒷정리가 돌면, 방금 건 것까지
|
|
52
|
+
`disconnect()` 로 끊고 `current = null` 로 지운다. 그러고 나면 마디는 안 바뀌었으니 `ref` 가
|
|
53
|
+
다시 안 불리고, **보개를 다시 세울 길이 없다.** 말귀가 짚은 그대로다.
|
|
54
|
+
|
|
55
|
+
고친 것 둘.
|
|
56
|
+
|
|
57
|
+
- **세우는 것도 거두는 것도 `ref` 가 한다.** `useEffect` 뒷정리를 없앴다 — React 는 떼어낼 때
|
|
58
|
+
`ref` 를 `null` 로 불러 주므로 그것이 곧 뒷정리이고, 마디가 다 떨어졌을 때만 거둔다. 세울
|
|
59
|
+
때마다 **살아 있나를 보고 없으면 다시 세운다.**
|
|
60
|
+
- **안전줄 — 그려질 때마다 한 번 더 잰다.** 보개가 어떤 까닭으로든 못 울린 자리를 덮는다.
|
|
61
|
+
같은 값이면 React 가 다시 안 그리므로 도는 일은 없고, 읽는 것은 마디 하나의
|
|
62
|
+
`scrollWidth`·`clientWidth` 둘뿐이다.
|
|
63
|
+
|
|
64
|
+
> **고친 뒤에 다시 재 주신 덕에 잡혔다.** 0.237.0 은 "코드를 읽어 길이 보였다" 로 낸 판인데,
|
|
65
|
+
> 보인 길 하나를 막고 **그 자리에 새로 낸 길**은 못 봤다. 코드를 읽어 보이는 길과 실제로
|
|
66
|
+
> 밟히는 길이 늘 같지는 않다.
|
|
67
|
+
|
|
10
68
|
## 0.237.0
|
|
11
69
|
|
|
12
70
|
### 표 굴림통의 보개가 **지금 마디**를 본다 — 한 번 잡고 굳지 않는다
|