Skip to content

Commit 80bcc72

Browse files
committed
refactor(moderation): move actions ui components
1 parent c5ba4d3 commit 80bcc72

File tree

77 files changed

+1306
-764
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+1306
-764
lines changed

bun.lockb

712 Bytes
Binary file not shown.

hyyypertool.code-workspace

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,17 @@
213213
"problemMatcher": ["$tsc-watch"],
214214
"runOptions": { "instanceLimit": 1 },
215215
},
216+
{
217+
"label": "🧪 Update Test Snapshots : Current file",
218+
"command": "bun test --update-snapshots ${fileDirname}/${fileBasename}",
219+
"type": "shell",
220+
"group": "build",
221+
"options": {
222+
"cwd": "${workspaceFolder:root}",
223+
},
224+
"problemMatcher": ["$tsc-watch"],
225+
"runOptions": { "instanceLimit": 1 },
226+
},
216227
{
217228
"label": "🧪 Watch Test",
218229
"command": "bun test --watch",

packages/~/app/core/package.json

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,17 @@
55
"type": "module",
66
"exports": {
77
".": "./src/index.ts",
8-
"./config": {
9-
"default": "./src/config/index.ts"
8+
"./config/*": {
9+
"default": "./src/config/*.ts"
1010
},
11-
"./error": {
12-
"default": "./src/error/index.ts"
11+
"./date/*": {
12+
"default": "./src/date/*.ts"
1313
},
14-
"./html": {
15-
"default": "./src/html/index.ts"
16-
},
17-
"./htmx": {
18-
"default": "./src/htmx/index.ts"
19-
},
20-
"./schema": {
21-
"default": "./src/schema/index.ts"
14+
"./schema/*": {
15+
"default": "./src/schema/*.ts"
2216
},
2317
"./*": {
24-
"default": "./src/*.ts"
18+
"default": "./src/*/index.ts"
2519
}
2620
},
2721
"scripts": {
@@ -30,6 +24,7 @@
3024
"dependencies": {
3125
"modern-errors": "7.0.1",
3226
"ts-pattern": "5.4.0",
27+
"type-fest": "4.26.1",
3328
"zod": "3.23.8"
3429
},
3530
"devDependencies": {
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
//
2+
3+
export type { SetOptional, Simplify, SimplifyDeep } from "type-fest";

packages/~/app/ui/src/testing/index.ts

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,35 @@
22

33
import type { Child } from "hono/jsx";
44
import { renderToReadableStream } from "hono/jsx/dom/server";
5-
import { format } from "prettier";
5+
import { format, type Options } from "prettier";
66

77
//
88

9-
export async function renderHTML(element: Child) {
10-
const textDecoder = new TextDecoder();
11-
const getStringFromStream = async (
12-
stream: ReadableStream<Uint8Array>,
13-
): Promise<string> => {
14-
const reader = stream.getReader();
15-
let str = "";
16-
for (;;) {
17-
const { done, value } = await reader.read();
18-
if (done) {
19-
break;
9+
export const render_html = PrettyRenderer({ parser: "html" });
10+
export const render_md = PrettyRenderer({ parser: "mdx" });
11+
12+
//
13+
14+
export function PrettyRenderer(options: Options) {
15+
return async function render_formated(element: Child) {
16+
const textDecoder = new TextDecoder();
17+
const getStringFromStream = async (
18+
stream: ReadableStream<Uint8Array>,
19+
): Promise<string> => {
20+
const reader = stream.getReader();
21+
let str = "";
22+
for (;;) {
23+
const { done, value } = await reader.read();
24+
if (done) {
25+
break;
26+
}
27+
str += textDecoder.decode(value);
2028
}
21-
str += textDecoder.decode(value);
22-
}
23-
return str;
29+
return str;
30+
};
31+
return format(
32+
await getStringFromStream(await renderToReadableStream(element)),
33+
options,
34+
);
2435
};
25-
return format(
26-
await getStringFromStream(await renderToReadableStream(element)),
27-
{ parser: "html" },
28-
);
2936
}

packages/~/app/urls/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616
"dependencies": {
1717
"consola": "3.2.3",
1818
"hono": "4.6.3",
19-
"static-path": "0.0.4",
20-
"type-fest": "4.26.1"
19+
"static-path": "0.0.4"
2120
},
2221
"devDependencies": {
2322
"@~/config.typescript": "workspace:*"

packages/~/app/urls/src/hx_urls.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
//
22

3+
import type { SetOptional } from "@~/app.core/types";
34
import type { Hono, HonoRequest, Schema } from "hono";
45
import { hc } from "hono/client";
56
import type { Endpoint } from "hono/types";
67
import type { HasRequiredKeys, UnionToIntersection } from "hono/utils/types";
7-
import type { SetOptional } from "type-fest";
88
import type { Router } from "./pattern";
99

1010
//

packages/~/moderations/api/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
"@~/organizations.repository": "workspace:*",
3030
"@~/organizations.ui": "workspace:*",
3131
"@~/users.lib": "workspace:*",
32+
"@~/users.ui": "workspace:*",
3233
"@~/zammad.lib": "workspace:*",
3334
"await-to-js": "3.0.0",
3435
"drizzle-orm": "0.33.0",

packages/~/moderations/api/src/:id/$procedures/rejected.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@ import { zValidator } from "@hono/zod-validator";
44
import type { Htmx_Header } from "@~/app.core/htmx";
55
import { Entity_Schema } from "@~/app.core/schema";
66
import { set_crisp_config } from "@~/crisp.middleware";
7-
import {
8-
RejectedMessage_Schema,
9-
type RejectedModeration_Context,
10-
} from "@~/moderations.lib/context/rejected";
7+
import { type RejectedModeration_Context } from "@~/moderations.lib/context/rejected";
118
import { MODERATION_EVENTS } from "@~/moderations.lib/event";
9+
import { reject_form_schema } from "@~/moderations.lib/schema/rejected.form";
1210
import { mark_moderation_as } from "@~/moderations.lib/usecase/mark_moderation_as";
1311
import { send_rejected_message_to_user } from "@~/moderations.lib/usecase/send_rejected_message_to_user";
1412
import { get_moderation } from "@~/moderations.repository/get_moderation";
@@ -21,7 +19,7 @@ export default new Hono<ContextType>().patch(
2119
"/",
2220
set_crisp_config(),
2321
zValidator("param", Entity_Schema),
24-
zValidator("form", RejectedMessage_Schema),
22+
zValidator("form", reject_form_schema),
2523
async function PATH({
2624
text,
2725
req,

packages/~/moderations/api/src/:id/$procedures/validate.e2e.test.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { set_moncomptepro_pg } from "@~/app.middleware/set_moncomptepro_pg";
55
import { set_nonce } from "@~/app.middleware/set_nonce";
66
import { set_userinfo } from "@~/app.middleware/set_userinfo";
77
import { anais_tailhade } from "@~/app.middleware/set_userinfo#fixture";
8+
import { validate_form_schema } from "@~/moderations.lib/schema/validate.form";
89
import {
910
create_adora_pony_moderation,
1011
create_adora_pony_user,
@@ -26,7 +27,7 @@ import {
2627
test,
2728
} from "bun:test";
2829
import { Hono } from "hono";
29-
import app, { FORM_SCHEMA } from "./validate";
30+
import app from "./validate";
3031

3132
//
3233

@@ -45,7 +46,10 @@ test("GET /moderation/:id/$procedures/validate { add_domain: true, add_member: A
4546

4647
const body = new FormData();
4748
body.append("add_domain", "true");
48-
body.append("add_member", FORM_SCHEMA.shape.add_member.Enum.AS_INTERNAL);
49+
body.append(
50+
"add_member",
51+
validate_form_schema.shape.add_member.enum.AS_INTERNAL,
52+
);
4953
const response = await new Hono()
5054
.use(set_config({}))
5155
.use(set_moncomptepro_pg(pg))
@@ -107,7 +111,10 @@ test("GET /moderation/:id/$procedures/validate { add_domain: false, add_member:
107111

108112
const body = new FormData();
109113
body.append("add_domain", "false");
110-
body.append("add_member", FORM_SCHEMA.shape.add_member.Enum.AS_EXTERNAL);
114+
body.append(
115+
"add_member",
116+
validate_form_schema.shape.add_member.enum.AS_EXTERNAL,
117+
);
111118
const response = await new Hono()
112119
.use(set_config({}))
113120
.use(set_moncomptepro_pg(pg))

0 commit comments

Comments
 (0)