@walavave/cc98-cli 0.2.1 → 0.2.3

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.
Files changed (246) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +11 -2
  3. package/assets/forum-images/ac-dark/01.png +0 -0
  4. package/assets/forum-images/ac-dark/02.png +0 -0
  5. package/assets/forum-images/ac-dark/03.png +0 -0
  6. package/assets/forum-images/ac-dark/04.png +0 -0
  7. package/assets/forum-images/ac-dark/05.png +0 -0
  8. package/assets/forum-images/ac-dark/06.png +0 -0
  9. package/assets/forum-images/ac-dark/07.png +0 -0
  10. package/assets/forum-images/ac-dark/08.png +0 -0
  11. package/assets/forum-images/ac-dark/09.png +0 -0
  12. package/assets/forum-images/ac-dark/10.png +0 -0
  13. package/assets/forum-images/ac-dark/1001.png +0 -0
  14. package/assets/forum-images/ac-dark/1002.png +0 -0
  15. package/assets/forum-images/ac-dark/1003.png +0 -0
  16. package/assets/forum-images/ac-dark/1004.png +0 -0
  17. package/assets/forum-images/ac-dark/1005.png +0 -0
  18. package/assets/forum-images/ac-dark/1006.png +0 -0
  19. package/assets/forum-images/ac-dark/1007.png +0 -0
  20. package/assets/forum-images/ac-dark/1008.png +0 -0
  21. package/assets/forum-images/ac-dark/1009.png +0 -0
  22. package/assets/forum-images/ac-dark/1010.png +0 -0
  23. package/assets/forum-images/ac-dark/1011.png +0 -0
  24. package/assets/forum-images/ac-dark/1012.png +0 -0
  25. package/assets/forum-images/ac-dark/1013.png +0 -0
  26. package/assets/forum-images/ac-dark/1014.png +0 -0
  27. package/assets/forum-images/ac-dark/1015.png +0 -0
  28. package/assets/forum-images/ac-dark/1016.png +0 -0
  29. package/assets/forum-images/ac-dark/1017.png +0 -0
  30. package/assets/forum-images/ac-dark/1018.png +0 -0
  31. package/assets/forum-images/ac-dark/1019.png +0 -0
  32. package/assets/forum-images/ac-dark/1020.png +0 -0
  33. package/assets/forum-images/ac-dark/1021.png +0 -0
  34. package/assets/forum-images/ac-dark/1022.png +0 -0
  35. package/assets/forum-images/ac-dark/1023.png +0 -0
  36. package/assets/forum-images/ac-dark/1024.png +0 -0
  37. package/assets/forum-images/ac-dark/1025.png +0 -0
  38. package/assets/forum-images/ac-dark/1026.png +0 -0
  39. package/assets/forum-images/ac-dark/1027.png +0 -0
  40. package/assets/forum-images/ac-dark/1028.png +0 -0
  41. package/assets/forum-images/ac-dark/1029.png +0 -0
  42. package/assets/forum-images/ac-dark/1030.png +0 -0
  43. package/assets/forum-images/ac-dark/1031.png +0 -0
  44. package/assets/forum-images/ac-dark/1032.png +0 -0
  45. package/assets/forum-images/ac-dark/1033.png +0 -0
  46. package/assets/forum-images/ac-dark/1034.png +0 -0
  47. package/assets/forum-images/ac-dark/1035.png +0 -0
  48. package/assets/forum-images/ac-dark/1036.png +0 -0
  49. package/assets/forum-images/ac-dark/1037.png +0 -0
  50. package/assets/forum-images/ac-dark/1038.png +0 -0
  51. package/assets/forum-images/ac-dark/1039.png +0 -0
  52. package/assets/forum-images/ac-dark/1040.png +0 -0
  53. package/assets/forum-images/ac-dark/11.png +0 -0
  54. package/assets/forum-images/ac-dark/12.png +0 -0
  55. package/assets/forum-images/ac-dark/13.png +0 -0
  56. package/assets/forum-images/ac-dark/14.png +0 -0
  57. package/assets/forum-images/ac-dark/15.png +0 -0
  58. package/assets/forum-images/ac-dark/16.png +0 -0
  59. package/assets/forum-images/ac-dark/17.png +0 -0
  60. package/assets/forum-images/ac-dark/18.png +0 -0
  61. package/assets/forum-images/ac-dark/19.png +0 -0
  62. package/assets/forum-images/ac-dark/20.png +0 -0
  63. package/assets/forum-images/ac-dark/2001.png +0 -0
  64. package/assets/forum-images/ac-dark/2002.png +0 -0
  65. package/assets/forum-images/ac-dark/2003.png +0 -0
  66. package/assets/forum-images/ac-dark/2004.png +0 -0
  67. package/assets/forum-images/ac-dark/2005.png +0 -0
  68. package/assets/forum-images/ac-dark/2006.png +0 -0
  69. package/assets/forum-images/ac-dark/2007.png +0 -0
  70. package/assets/forum-images/ac-dark/2008.png +0 -0
  71. package/assets/forum-images/ac-dark/2009.png +0 -0
  72. package/assets/forum-images/ac-dark/2010.png +0 -0
  73. package/assets/forum-images/ac-dark/2011.png +0 -0
  74. package/assets/forum-images/ac-dark/2012.png +0 -0
  75. package/assets/forum-images/ac-dark/2013.png +0 -0
  76. package/assets/forum-images/ac-dark/2014.png +0 -0
  77. package/assets/forum-images/ac-dark/2015.png +0 -0
  78. package/assets/forum-images/ac-dark/2016.png +0 -0
  79. package/assets/forum-images/ac-dark/2017.png +0 -0
  80. package/assets/forum-images/ac-dark/2018.png +0 -0
  81. package/assets/forum-images/ac-dark/2019.png +0 -0
  82. package/assets/forum-images/ac-dark/2020.png +0 -0
  83. package/assets/forum-images/ac-dark/2021.png +0 -0
  84. package/assets/forum-images/ac-dark/2022.png +0 -0
  85. package/assets/forum-images/ac-dark/2023.png +0 -0
  86. package/assets/forum-images/ac-dark/2024.png +0 -0
  87. package/assets/forum-images/ac-dark/2025.png +0 -0
  88. package/assets/forum-images/ac-dark/2026.png +0 -0
  89. package/assets/forum-images/ac-dark/2027.png +0 -0
  90. package/assets/forum-images/ac-dark/2028.png +0 -0
  91. package/assets/forum-images/ac-dark/2029.png +0 -0
  92. package/assets/forum-images/ac-dark/2030.png +0 -0
  93. package/assets/forum-images/ac-dark/2031.png +0 -0
  94. package/assets/forum-images/ac-dark/2032.png +0 -0
  95. package/assets/forum-images/ac-dark/2033.png +0 -0
  96. package/assets/forum-images/ac-dark/2034.png +0 -0
  97. package/assets/forum-images/ac-dark/2035.png +0 -0
  98. package/assets/forum-images/ac-dark/2036.png +0 -0
  99. package/assets/forum-images/ac-dark/2037.png +0 -0
  100. package/assets/forum-images/ac-dark/2038.png +0 -0
  101. package/assets/forum-images/ac-dark/2039.png +0 -0
  102. package/assets/forum-images/ac-dark/2040.png +0 -0
  103. package/assets/forum-images/ac-dark/2041.png +0 -0
  104. package/assets/forum-images/ac-dark/2042.png +0 -0
  105. package/assets/forum-images/ac-dark/2043.png +0 -0
  106. package/assets/forum-images/ac-dark/2044.png +0 -0
  107. package/assets/forum-images/ac-dark/2045.png +0 -0
  108. package/assets/forum-images/ac-dark/2046.png +0 -0
  109. package/assets/forum-images/ac-dark/2047.png +0 -0
  110. package/assets/forum-images/ac-dark/2048.png +0 -0
  111. package/assets/forum-images/ac-dark/2049.png +0 -0
  112. package/assets/forum-images/ac-dark/2050.png +0 -0
  113. package/assets/forum-images/ac-dark/2051.png +0 -0
  114. package/assets/forum-images/ac-dark/2052.png +0 -0
  115. package/assets/forum-images/ac-dark/2053.png +0 -0
  116. package/assets/forum-images/ac-dark/2054.png +0 -0
  117. package/assets/forum-images/ac-dark/2055.png +0 -0
  118. package/assets/forum-images/ac-dark/21.png +0 -0
  119. package/assets/forum-images/ac-dark/22.png +0 -0
  120. package/assets/forum-images/ac-dark/23.png +0 -0
  121. package/assets/forum-images/ac-dark/24.png +0 -0
  122. package/assets/forum-images/ac-dark/25.png +0 -0
  123. package/assets/forum-images/ac-dark/26.png +0 -0
  124. package/assets/forum-images/ac-dark/27.png +0 -0
  125. package/assets/forum-images/ac-dark/28.png +0 -0
  126. package/assets/forum-images/ac-dark/29.png +0 -0
  127. package/assets/forum-images/ac-dark/30.png +0 -0
  128. package/assets/forum-images/ac-dark/31.png +0 -0
  129. package/assets/forum-images/ac-dark/32.png +0 -0
  130. package/assets/forum-images/ac-dark/33.png +0 -0
  131. package/assets/forum-images/ac-dark/34.png +0 -0
  132. package/assets/forum-images/ac-dark/35.png +0 -0
  133. package/assets/forum-images/ac-dark/36.png +0 -0
  134. package/assets/forum-images/ac-dark/37.png +0 -0
  135. package/assets/forum-images/ac-dark/38.png +0 -0
  136. package/assets/forum-images/ac-dark/39.png +0 -0
  137. package/assets/forum-images/ac-dark/40.png +0 -0
  138. package/assets/forum-images/ac-dark/41.png +0 -0
  139. package/assets/forum-images/ac-dark/42.png +0 -0
  140. package/assets/forum-images/ac-dark/43.png +0 -0
  141. package/assets/forum-images/ac-dark/44.png +0 -0
  142. package/assets/forum-images/ac-dark/45.png +0 -0
  143. package/assets/forum-images/ac-dark/46.png +0 -0
  144. package/assets/forum-images/ac-dark/47.png +0 -0
  145. package/assets/forum-images/ac-dark/48.png +0 -0
  146. package/assets/forum-images/ac-dark/49.png +0 -0
  147. package/assets/forum-images/ac-dark/50.png +0 -0
  148. package/assets/forum-images/ac-dark/51.png +0 -0
  149. package/assets/forum-images/ac-dark/52.png +0 -0
  150. package/assets/forum-images/ac-dark/53.png +0 -0
  151. package/assets/forum-images/ac-dark/54.png +0 -0
  152. package/dist/api/client.d.ts +3 -2
  153. package/dist/api/client.d.ts.map +1 -1
  154. package/dist/api/client.js +21 -4
  155. package/dist/api/client.js.map +1 -1
  156. package/dist/api/endpoints.d.ts +1 -0
  157. package/dist/api/endpoints.d.ts.map +1 -1
  158. package/dist/api/endpoints.js +1 -0
  159. package/dist/api/endpoints.js.map +1 -1
  160. package/dist/config.d.ts +3 -0
  161. package/dist/config.d.ts.map +1 -1
  162. package/dist/config.js +32 -4
  163. package/dist/config.js.map +1 -1
  164. package/dist/tui/app-data.d.ts +3 -1
  165. package/dist/tui/app-data.d.ts.map +1 -1
  166. package/dist/tui/app-data.js +167 -11
  167. package/dist/tui/app-data.js.map +1 -1
  168. package/dist/tui/app-runtime/content.d.ts +9 -0
  169. package/dist/tui/app-runtime/content.d.ts.map +1 -0
  170. package/dist/tui/app-runtime/content.js +287 -0
  171. package/dist/tui/app-runtime/content.js.map +1 -0
  172. package/dist/tui/app-runtime/context.d.ts +24 -0
  173. package/dist/tui/app-runtime/context.d.ts.map +1 -0
  174. package/dist/tui/app-runtime/context.js +2 -0
  175. package/dist/tui/app-runtime/context.js.map +1 -0
  176. package/dist/tui/app-runtime/image-viewer.d.ts +5 -0
  177. package/dist/tui/app-runtime/image-viewer.d.ts.map +1 -0
  178. package/dist/tui/app-runtime/image-viewer.js +112 -0
  179. package/dist/tui/app-runtime/image-viewer.js.map +1 -0
  180. package/dist/tui/app-runtime/interactions.d.ts +6 -0
  181. package/dist/tui/app-runtime/interactions.d.ts.map +1 -0
  182. package/dist/tui/app-runtime/interactions.js +181 -0
  183. package/dist/tui/app-runtime/interactions.js.map +1 -0
  184. package/dist/tui/app-runtime/keyboard.d.ts +3 -0
  185. package/dist/tui/app-runtime/keyboard.d.ts.map +1 -0
  186. package/dist/tui/app-runtime/keyboard.js +284 -0
  187. package/dist/tui/app-runtime/keyboard.js.map +1 -0
  188. package/dist/tui/app-runtime/modals.d.ts +17 -0
  189. package/dist/tui/app-runtime/modals.d.ts.map +1 -0
  190. package/dist/tui/app-runtime/modals.js +343 -0
  191. package/dist/tui/app-runtime/modals.js.map +1 -0
  192. package/dist/tui/app-runtime/mouse.d.ts +5 -0
  193. package/dist/tui/app-runtime/mouse.d.ts.map +1 -0
  194. package/dist/tui/app-runtime/mouse.js +68 -0
  195. package/dist/tui/app-runtime/mouse.js.map +1 -0
  196. package/dist/tui/app-runtime/state.d.ts +6 -0
  197. package/dist/tui/app-runtime/state.d.ts.map +1 -0
  198. package/dist/tui/app-runtime/state.js +42 -0
  199. package/dist/tui/app-runtime/state.js.map +1 -0
  200. package/dist/tui/app-runtime/topic.d.ts +6 -0
  201. package/dist/tui/app-runtime/topic.d.ts.map +1 -0
  202. package/dist/tui/app-runtime/topic.js +214 -0
  203. package/dist/tui/app-runtime/topic.js.map +1 -0
  204. package/dist/tui/app-runtime.d.ts +2 -27
  205. package/dist/tui/app-runtime.d.ts.map +1 -1
  206. package/dist/tui/app-runtime.js +2 -1132
  207. package/dist/tui/app-runtime.js.map +1 -1
  208. package/dist/tui/app.d.ts.map +1 -1
  209. package/dist/tui/app.js +9 -2
  210. package/dist/tui/app.js.map +1 -1
  211. package/dist/tui/cached-client.d.ts +3 -0
  212. package/dist/tui/cached-client.d.ts.map +1 -1
  213. package/dist/tui/cached-client.js +9 -0
  214. package/dist/tui/cached-client.js.map +1 -1
  215. package/dist/tui/emotion-catalog.d.ts +23 -0
  216. package/dist/tui/emotion-catalog.d.ts.map +1 -0
  217. package/dist/tui/emotion-catalog.js +150 -0
  218. package/dist/tui/emotion-catalog.js.map +1 -0
  219. package/dist/tui/emotion-preview.js +1 -1
  220. package/dist/tui/emotion-preview.js.map +1 -1
  221. package/dist/tui/image-preview.d.ts.map +1 -1
  222. package/dist/tui/image-preview.js +2 -1
  223. package/dist/tui/image-preview.js.map +1 -1
  224. package/dist/tui/keymap.d.ts +1 -1
  225. package/dist/tui/keymap.d.ts.map +1 -1
  226. package/dist/tui/keymap.js +2 -0
  227. package/dist/tui/keymap.js.map +1 -1
  228. package/dist/tui/renderer.d.ts.map +1 -1
  229. package/dist/tui/renderer.js +282 -30
  230. package/dist/tui/renderer.js.map +1 -1
  231. package/dist/tui/terminal.d.ts +3 -0
  232. package/dist/tui/terminal.d.ts.map +1 -1
  233. package/dist/tui/terminal.js +37 -0
  234. package/dist/tui/terminal.js.map +1 -1
  235. package/dist/tui/theme.d.ts +1 -0
  236. package/dist/tui/theme.d.ts.map +1 -1
  237. package/dist/tui/theme.js +1 -0
  238. package/dist/tui/theme.js.map +1 -1
  239. package/dist/tui/tui-model.d.ts +41 -2
  240. package/dist/tui/tui-model.d.ts.map +1 -1
  241. package/dist/tui/tui-model.js.map +1 -1
  242. package/dist/tui/ubb-renderer.js +1 -1
  243. package/dist/tui/ubb-renderer.js.map +1 -1
  244. package/dist/version.d.ts +1 -1
  245. package/dist/version.js +1 -1
  246. package/package.json +1 -1
@@ -0,0 +1,214 @@
1
+ import { jumpRelativeTopicFloor, jumpToTopicFloor, loadNextTopicPage, openTopic, openUserProfile } from "../app-data.js";
2
+ import { currentTopicPost, getStatus } from "../tui-model.js";
3
+ import { openTopicImageViewer, stepTopicImageViewer } from "./image-viewer.js";
4
+ import { openComposeModal } from "./modals.js";
5
+ import { leaveTopicMode, showNotification } from "./state.js";
6
+ export function handleTopicMode(context, key, keyAction) {
7
+ const { state, render, client, config, nextSignal, abortCurrent } = context;
8
+ if (key === config.composeKey && !state.topic?.floorInput) {
9
+ openComposeModal(context);
10
+ return;
11
+ }
12
+ if (key === ":" && state.topic && !state.topic.floorInput) {
13
+ state.topic.floorInput = ":";
14
+ state.status = "跳转到楼层:输入数字后 Enter 确认 Esc 取消";
15
+ render();
16
+ return;
17
+ }
18
+ if (/^\d$/.test(key) && state.topic?.floorInput.startsWith(":")) {
19
+ if (state.topic.floorInput === ":" && key === "0") {
20
+ return;
21
+ }
22
+ state.topic.floorInput = `${state.topic.floorInput}${key}`.slice(0, 7);
23
+ state.status = `跳转到 ${state.topic.floorInput.slice(1)} 楼:Enter 确认 Esc 取消`;
24
+ render();
25
+ return;
26
+ }
27
+ if (key === "\x7f" && state.topic?.floorInput) {
28
+ state.topic.floorInput = state.topic.floorInput.slice(0, -1);
29
+ state.status = state.topic.floorInput
30
+ ? state.topic.floorInput === ":"
31
+ ? "跳转到楼层:输入数字后 Enter 确认 Esc 取消"
32
+ : `跳转到 ${state.topic.floorInput.slice(1)} 楼:Enter 确认 Esc 取消`
33
+ : getStatus(state);
34
+ render();
35
+ return;
36
+ }
37
+ if (key === "\r" && state.topic?.floorInput) {
38
+ const floor = Number(state.topic.floorInput.slice(1));
39
+ state.topic.floorInput = "";
40
+ if (Number.isInteger(floor) && floor > 0) {
41
+ void jumpToTopicFloor(client, state, floor, render, config, nextSignal());
42
+ }
43
+ else {
44
+ state.status = getStatus(state);
45
+ render();
46
+ }
47
+ return;
48
+ }
49
+ if ((key === "]" || key === "】" || keyAction === "topic.next-reply") && state.topic) {
50
+ jumpRelativeTopicFloor(state, 1);
51
+ state.status = getStatus(state);
52
+ render();
53
+ return;
54
+ }
55
+ if ((key === "[" || key === "【" || keyAction === "topic.previous-reply") && state.topic) {
56
+ jumpRelativeTopicFloor(state, -1);
57
+ state.status = getStatus(state);
58
+ render();
59
+ return;
60
+ }
61
+ if (key === "a" || keyAction === "topic.like-post") {
62
+ void reactToCurrentTopicPost(context, true);
63
+ return;
64
+ }
65
+ if (key === "s" || keyAction === "topic.dislike-post") {
66
+ void reactToCurrentTopicPost(context, false);
67
+ return;
68
+ }
69
+ if (key === "u") {
70
+ void openCurrentPostUserProfile(context);
71
+ return;
72
+ }
73
+ if (key === "h" || key === "\x1b[D") {
74
+ abortCurrent();
75
+ leaveTopicMode(state);
76
+ render();
77
+ return;
78
+ }
79
+ if (key === "\x1b" && state.topic?.floorInput) {
80
+ state.topic.floorInput = "";
81
+ state.status = getStatus(state);
82
+ render();
83
+ return;
84
+ }
85
+ if (key === "j") {
86
+ const wasAtEnd = isAtTopicEnd(state, config, context.getSize().rows);
87
+ jumpRelativeTopicFloor(state, 1);
88
+ state.status = getStatus(state);
89
+ render();
90
+ if (wasAtEnd && state.topic?.hasMore && !state.loadingMore) {
91
+ void loadNextTopicPage(client, state, render, config, nextSignal(), true);
92
+ }
93
+ return;
94
+ }
95
+ if (key === "k") {
96
+ jumpRelativeTopicFloor(state, -1);
97
+ state.status = getStatus(state);
98
+ render();
99
+ return;
100
+ }
101
+ if (key === "\x1b[B") {
102
+ const maxScroll = Math.max(0, (state.topic?.lines.length ?? 0) - 1);
103
+ state.scroll = Math.min(maxScroll, state.scroll + 1);
104
+ state.status = getStatus(state);
105
+ render();
106
+ return;
107
+ }
108
+ if (key === "\x1b[A") {
109
+ state.scroll = Math.max(0, state.scroll - 1);
110
+ state.status = getStatus(state);
111
+ render();
112
+ return;
113
+ }
114
+ if (key === " ") {
115
+ void openTopicImageViewer(context);
116
+ return;
117
+ }
118
+ if (key === "n") {
119
+ void loadNextTopicPage(client, state, render, config, nextSignal());
120
+ return;
121
+ }
122
+ if (key === "\x1b[C") {
123
+ void stepTopicImageViewer(context, 1);
124
+ return;
125
+ }
126
+ if (key === "r" && state.topic) {
127
+ void openTopic(client, state, state.topic.topicId, render, config, true, nextSignal());
128
+ }
129
+ }
130
+ export function isAtTopicEnd(state, config, totalRows) {
131
+ if (!state.topic) {
132
+ return false;
133
+ }
134
+ const viewport = getTopicViewportHeight(config, totalRows);
135
+ if (viewport <= 0) {
136
+ return state.scroll >= Math.max(0, state.topic.lines.length - 1);
137
+ }
138
+ return state.scroll + viewport >= state.topic.lines.length;
139
+ }
140
+ function getTopicViewportHeight(config, totalRows) {
141
+ const mainHeight = config.hideTopChrome
142
+ ? Math.max(1, totalRows - 3)
143
+ : Math.max(1, totalRows - 7);
144
+ return Math.max(0, mainHeight - 4);
145
+ }
146
+ async function reactToCurrentTopicPost(context, isLike) {
147
+ const { state, client, render } = context;
148
+ const topic = state.topic;
149
+ if (!topic || state.loadingMore) {
150
+ return;
151
+ }
152
+ const post = currentTopicPost(topic, state.scroll);
153
+ if (!post?.id) {
154
+ state.status = "当前楼层不可赞踩";
155
+ render();
156
+ return;
157
+ }
158
+ state.status = isLike ? "正在点赞..." : "正在点踩...";
159
+ render();
160
+ try {
161
+ await client.reactToPost(post.id, isLike);
162
+ const latest = await client.getPostReactionState(post.id, true);
163
+ if (typeof latest === "object" && latest !== null) {
164
+ const reaction = latest;
165
+ if (typeof reaction.likeCount === "number" && Number.isFinite(reaction.likeCount)) {
166
+ post.likeCount = reaction.likeCount;
167
+ }
168
+ if (typeof reaction.dislikeCount === "number" && Number.isFinite(reaction.dislikeCount)) {
169
+ post.dislikeCount = reaction.dislikeCount;
170
+ }
171
+ post.likeState = reaction.likeState === 1 || reaction.likeState === 2 ? reaction.likeState : 0;
172
+ }
173
+ updateTopicPostHeader(post, topic);
174
+ showNotification(state, post.likeState === 1 ? `已赞 ${post.floor ?? "?"} 楼` :
175
+ post.likeState === 2 ? `已踩 ${post.floor ?? "?"} 楼` :
176
+ `已取消 ${post.floor ?? "?"} 楼的赞踩`);
177
+ state.status = getStatus(state);
178
+ }
179
+ catch (error) {
180
+ state.error = error instanceof Error ? error.message : String(error);
181
+ state.status = isLike ? "点赞失败" : "点踩失败";
182
+ }
183
+ finally {
184
+ render();
185
+ }
186
+ }
187
+ function updateTopicPostHeader(post, topic) {
188
+ const floor = post.floor !== undefined ? `#${post.floor}` : "#?";
189
+ const reaction = ` · ${post.likeCount} 赞 · ${post.dislikeCount} 踩`;
190
+ const header = `${floor} ${post.author}${post.time ? ` · ${post.time}` : ""}${reaction}`;
191
+ const headerLine = post.lines.find((entry) => entry.kind === "header");
192
+ if (!headerLine) {
193
+ return;
194
+ }
195
+ headerLine.text = header;
196
+ if (headerLine.line >= 0 && headerLine.line < topic.lines.length) {
197
+ topic.lines[headerLine.line] = header;
198
+ }
199
+ }
200
+ async function openCurrentPostUserProfile(context) {
201
+ const { state, client, render, nextSignal } = context;
202
+ const topic = state.topic;
203
+ if (!topic) {
204
+ return;
205
+ }
206
+ const post = currentTopicPost(topic, state.scroll);
207
+ if (!post?.userId) {
208
+ state.status = "当前楼层没有可打开的用户页";
209
+ render();
210
+ return;
211
+ }
212
+ await openUserProfile(client, state, post.userId, render, false, nextSignal());
213
+ }
214
+ //# sourceMappingURL=topic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topic.js","sourceRoot":"","sources":["../../../src/tui/app-runtime/topic.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,3 @@
1
- import type { TuiConfig } from "../config.js";
2
- import { type TuiState } from "./tui-model.js";
3
- import type { CachedCc98Client } from "./cached-client.js";
4
- import type { Cc98Client } from "../api/client.js";
5
- import type { TokenStore } from "../storage/token-store.js";
6
- import type { TuiKeymap } from "./keymap.js";
7
- import type { MouseEvent } from "./terminal.js";
8
- interface RuntimeContext {
9
- client: CachedCc98Client;
10
- rawClient: Cc98Client;
11
- tokenStore: TokenStore;
12
- config: TuiConfig;
13
- keymap: TuiKeymap;
14
- state: TuiState;
15
- getSize: () => {
16
- columns: number;
17
- rows: number;
18
- };
19
- render: () => void;
20
- load: (force?: boolean) => Promise<void>;
21
- nextSignal: () => AbortSignal;
22
- abortCurrent: () => void;
23
- close: () => void;
24
- }
25
- export declare function createMouseHandler(context: RuntimeContext, handleScroll: (state: TuiState, delta: number) => void, clampSidebarWidth: (value: number, totalWidth: number) => number, getDividerColumn: () => number): (event: MouseEvent) => void;
26
- export declare function createKeyHandler(context: RuntimeContext): (key: string) => void;
27
- export {};
1
+ export { createKeyHandler } from "./app-runtime/keyboard.js";
2
+ export { createMouseHandler } from "./app-runtime/mouse.js";
28
3
  //# sourceMappingURL=app-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-runtime.d.ts","sourceRoot":"","sources":["../../src/tui/app-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAsB9C,OAAO,EAA0E,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACvH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,UAAU,cAAc;IACtB,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,UAAU,EAAE,MAAM,WAAW,CAAC;IAC9B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EACtD,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,EAChE,gBAAgB,EAAE,MAAM,MAAM,GAC7B,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CA6D7B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAkE/E"}
1
+ {"version":3,"file":"app-runtime.d.ts","sourceRoot":"","sources":["../../src/tui/app-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}