diff --git a/.github/workflows/frontend-tests.yml b/.github/workflows/frontend-tests.yml index f030d19fa..e5422c9fc 100644 --- a/.github/workflows/frontend-tests.yml +++ b/.github/workflows/frontend-tests.yml @@ -24,12 +24,9 @@ jobs: cache-dependency-path: "web/pnpm-lock.yaml" - run: pnpm install working-directory: web - - name: Run eslint check + - name: Run check run: pnpm lint working-directory: web - - name: Run type checks - run: pnpm type-check - working-directory: web frontend-build: runs-on: ubuntu-latest diff --git a/proto/gen/apidocs.swagger.yaml b/proto/gen/apidocs.swagger.yaml index 24314f5ec..a4942be92 100644 --- a/proto/gen/apidocs.swagger.yaml +++ b/proto/gen/apidocs.swagger.yaml @@ -305,7 +305,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: parent - description: "The parent is the owner of the memos.\r\nIf not specified or `users/-`, it will list all memos." + description: |- + The parent is the owner of the memos. + If not specified or `users/-`, it will list all memos. in: query required: false type: string @@ -316,12 +318,16 @@ paths: type: integer format: int32 - name: pageToken - description: "A page token, received from a previous `ListMemos` call.\r\nProvide this to retrieve the subsequent page." + description: |- + A page token, received from a previous `ListMemos` call. + Provide this to retrieve the subsequent page. in: query required: false type: string - name: state - description: "The state of the memos to list.\r\nDefault to `NORMAL`. Set to `ARCHIVED` to list archived memos." + description: |- + The state of the memos to list. + Default to `NORMAL`. Set to `ARCHIVED` to list archived memos. in: query required: false type: string @@ -331,12 +337,16 @@ paths: - ARCHIVED default: STATE_UNSPECIFIED - name: sort - description: "What field to sort the results by.\r\nDefault to display_time." + description: |- + What field to sort the results by. + Default to display_time. in: query required: false type: string - name: direction - description: "The direction to sort the results by.\r\nDefault to DESC." + description: |- + The direction to sort the results by. + Default to DESC. in: query required: false type: string @@ -346,12 +356,16 @@ paths: - DESC default: DIRECTION_UNSPECIFIED - name: filter - description: "Filter is a CEL expression to filter memos.\r\nRefer to `Shortcut.filter`." + description: |- + Filter is a CEL expression to filter memos. + Refer to `Shortcut.filter`. in: query required: false type: string - name: oldFilter - description: "[Deprecated] Old filter contains some specific conditions to filter memos.\r\nFormat: \"creator == 'users/{user}' && visibilities == ['PUBLIC', 'PROTECTED']\"" + description: |- + [Deprecated] Old filter contains some specific conditions to filter memos. + Format: "creator == 'users/{user}' && visibilities == ['PUBLIC', 'PROTECTED']" in: query required: false type: string @@ -396,7 +410,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: id - description: "The id of the reaction.\r\nRefer to the `Reaction.id`." + description: |- + The id of the reaction. + Refer to the `Reaction.id`. in: path required: true type: integer @@ -662,7 +678,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: name - description: "The resource name of the workspace setting.\r\nFormat: settings/{setting}" + description: |- + The resource name of the workspace setting. + Format: settings/{setting} in: path required: true type: string @@ -684,7 +702,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: setting.name - description: "name is the name of the setting.\r\nFormat: settings/{setting}" + description: |- + name is the name of the setting. + Format: settings/{setting} in: path required: true type: string @@ -806,13 +826,17 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: memo.name - description: "The name of the memo.\r\nFormat: memos/{memo}, memo is the user defined id or uuid." + description: |- + The name of the memo. + Format: memos/{memo}, memo is the user defined id or uuid. in: path required: true type: string pattern: memos/[^/]+ - name: memo - description: "The memo to update.\r\nThe `name` field is required." + description: |- + The memo to update. + The `name` field is required. in: body required: true schema: @@ -822,7 +846,9 @@ paths: $ref: '#/definitions/v1State' creator: type: string - title: "The name of the creator.\r\nFormat: users/{user}" + title: |- + The name of the creator. + Format: users/{user} createTime: type: string format: date-time @@ -870,7 +896,9 @@ paths: readOnly: true parent: type: string - title: "The name of the parent memo.\r\nFormat: memos/{id}" + title: |- + The name of the parent memo. + Format: memos/{id} readOnly: true snippet: type: string @@ -879,7 +907,9 @@ paths: location: $ref: '#/definitions/apiv1Location' description: The location of the memo. - title: "The memo to update.\r\nThe `name` field is required." + title: |- + The memo to update. + The `name` field is required. required: - memo tags: @@ -1075,7 +1105,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: name - description: "The name of the activity.\r\nFormat: activities/{id}, id is the system generated auto-incremented id." + description: |- + The name of the activity. + Format: activities/{id}, id is the system generated auto-incremented id. in: path required: true type: string @@ -1434,7 +1466,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: parent - description: "The parent is the owner of the memos.\r\nIf not specified or `users/-`, it will list all memos." + description: |- + The parent is the owner of the memos. + If not specified or `users/-`, it will list all memos. in: path required: true type: string @@ -1446,12 +1480,16 @@ paths: type: integer format: int32 - name: pageToken - description: "A page token, received from a previous `ListMemos` call.\r\nProvide this to retrieve the subsequent page." + description: |- + A page token, received from a previous `ListMemos` call. + Provide this to retrieve the subsequent page. in: query required: false type: string - name: state - description: "The state of the memos to list.\r\nDefault to `NORMAL`. Set to `ARCHIVED` to list archived memos." + description: |- + The state of the memos to list. + Default to `NORMAL`. Set to `ARCHIVED` to list archived memos. in: query required: false type: string @@ -1461,12 +1499,16 @@ paths: - ARCHIVED default: STATE_UNSPECIFIED - name: sort - description: "What field to sort the results by.\r\nDefault to display_time." + description: |- + What field to sort the results by. + Default to display_time. in: query required: false type: string - name: direction - description: "The direction to sort the results by.\r\nDefault to DESC." + description: |- + The direction to sort the results by. + Default to DESC. in: query required: false type: string @@ -1476,12 +1518,16 @@ paths: - DESC default: DIRECTION_UNSPECIFIED - name: filter - description: "Filter is a CEL expression to filter memos.\r\nRefer to `Shortcut.filter`." + description: |- + Filter is a CEL expression to filter memos. + Refer to `Shortcut.filter`. in: query required: false type: string - name: oldFilter - description: "[Deprecated] Old filter contains some specific conditions to filter memos.\r\nFormat: \"creator == 'users/{user}' && visibilities == ['PUBLIC', 'PROTECTED']\"" + description: |- + [Deprecated] Old filter contains some specific conditions to filter memos. + Format: "creator == 'users/{user}' && visibilities == ['PUBLIC', 'PROTECTED']" in: query required: false type: string @@ -1619,7 +1665,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: parent - description: "The parent, who owns the tags.\r\nFormat: memos/{id}. Use \"memos/-\" to delete all tags." + description: |- + The parent, who owns the tags. + Format: memos/{id}. Use "memos/-" to delete all tags. in: path required: true type: string @@ -1650,7 +1698,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: parent - description: "The parent, who owns the tags.\r\nFormat: memos/{id}. Use \"memos/-\" to rename all tags." + description: |- + The parent, who owns the tags. + Format: memos/{id}. Use "memos/-" to rename all tags. in: path required: true type: string @@ -1677,7 +1727,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: resource.name - description: "The name of the resource.\r\nFormat: resources/{resource}, resource is the user defined if or uuid." + description: |- + The name of the resource. + Format: resources/{resource}, resource is the user defined if or uuid. in: path required: true type: string @@ -1763,7 +1815,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: user.name - description: "The name of the user.\r\nFormat: users/{id}, id is the system generated auto-incremented id." + description: |- + The name of the user. + Format: users/{id}, id is the system generated auto-incremented id. in: path required: true type: string @@ -2026,7 +2080,9 @@ definitions: properties: memo: type: string - description: "The memo name of comment.\r\nRefer to `Memo.name`." + description: |- + The memo name of comment. + Refer to `Memo.name`. relatedMemo: type: string description: The name of related memo. @@ -2088,13 +2144,17 @@ definitions: properties: name: type: string - description: "The name of the memo.\r\nFormat: memos/{memo}, memo is the user defined id or uuid." + description: |- + The name of the memo. + Format: memos/{memo}, memo is the user defined id or uuid. readOnly: true state: $ref: '#/definitions/v1State' creator: type: string - title: "The name of the creator.\r\nFormat: users/{user}" + title: |- + The name of the creator. + Format: users/{user} createTime: type: string format: date-time @@ -2142,7 +2202,9 @@ definitions: readOnly: true parent: type: string - title: "The name of the parent memo.\r\nFormat: memos/{id}" + title: |- + The name of the parent memo. + Format: memos/{id} readOnly: true snippet: type: string @@ -2228,7 +2290,10 @@ definitions: weekStartDayOffset: type: integer format: int32 - description: "week_start_day_offset is the week start day offset from Sunday.\r\n0: Sunday, 1: Monday, 2: Tuesday, 3: Wednesday, 4: Thursday, 5: Friday, 6: Saturday\r\nDefault is Sunday." + description: |- + week_start_day_offset is the week start day offset from Sunday. + 0: Sunday, 1: Monday, 2: Tuesday, 3: Wednesday, 4: Thursday, 5: Friday, 6: Saturday + Default is Sunday. disallowChangeUsername: type: boolean description: disallow_change_username disallows changing username. @@ -2281,7 +2346,9 @@ definitions: properties: name: type: string - title: "name is the name of the setting.\r\nFormat: settings/{setting}" + title: |- + name is the name of the setting. + Format: settings/{setting} generalSetting: $ref: '#/definitions/apiv1WorkspaceGeneralSetting' storageSetting: @@ -2296,7 +2363,9 @@ definitions: description: storage_type is the storage type. filepathTemplate: type: string - title: "The template of file path.\r\ne.g. assets/{timestamp}_{filename}" + title: |- + The template of file path. + e.g. assets/{timestamp}_{filename} uploadSizeLimitMb: type: string format: int64 @@ -2455,11 +2524,15 @@ definitions: properties: name: type: string - title: "The name of the activity.\r\nFormat: activities/{id}" + title: |- + The name of the activity. + Format: activities/{id} readOnly: true creator: type: string - title: "The name of the creator.\r\nFormat: users/{user}" + title: |- + The name of the creator. + Format: users/{user} type: type: string description: The type of the activity. @@ -2721,7 +2794,9 @@ definitions: $ref: '#/definitions/apiv1Memo' nextPageToken: type: string - description: "A token, which can be sent as `page_token` to retrieve the next page.\r\nIf this field is omitted, there are no subsequent pages." + description: |- + A token, which can be sent as `page_token` to retrieve the next page. + If this field is omitted, there are no subsequent pages. v1ListNode: type: object properties: @@ -2810,7 +2885,9 @@ definitions: properties: name: type: string - title: "The name of the memo.\r\nFormat: memos/{id}" + title: |- + The name of the memo. + Format: memos/{id} uid: type: string snippet: @@ -2996,7 +3073,9 @@ definitions: properties: name: type: string - description: "The name of the resource.\r\nFormat: resources/{resource}, resource is the user defined if or uuid." + description: |- + The name of the resource. + Format: resources/{resource}, resource is the user defined if or uuid. readOnly: true createTime: type: string @@ -3130,7 +3209,9 @@ definitions: properties: name: type: string - description: "The name of the user.\r\nFormat: users/{id}, id is the system generated auto-incremented id." + description: |- + The name of the user. + Format: users/{id}, id is the system generated auto-incremented id. readOnly: true role: $ref: '#/definitions/UserRole' @@ -3180,7 +3261,9 @@ definitions: items: type: string format: date-time - description: "The timestamps when the memos were displayed.\r\nWe should return raw data to the client, and let the client format the data with the user's timezone." + description: |- + The timestamps when the memos were displayed. + We should return raw data to the client, and let the client format the data with the user's timezone. memoTypeStats: $ref: '#/definitions/UserStatsMemoTypeStats' description: The stats of memo types. @@ -3189,7 +3272,9 @@ definitions: additionalProperties: type: integer format: int32 - title: "The count of tags.\r\nFormat: \"tag1\": 1, \"tag2\": 2" + title: |- + The count of tags. + Format: "tag1": 1, "tag2": 2 pinnedMemos: type: array items: diff --git a/web/package.json b/web/package.json index a32c718dd..50de2be9b 100644 --- a/web/package.json +++ b/web/package.json @@ -4,8 +4,7 @@ "dev": "vite", "build": "vite build", "release": "vite build --mode release --outDir=../server/router/frontend/dist --emptyOutDir", - "lint": "eslint --ext .js,.ts,.tsx, src", - "type-check": "tsc --noEmit --skipLibCheck", + "lint": "tsc --noEmit --skipLibCheck && eslint --ext .js,.ts,.tsx, src", "postinstall": "cd ../proto && buf generate" }, "dependencies": { diff --git a/web/src/components/MemoContent/Renderer.tsx b/web/src/components/MemoContent/Renderer.tsx index 414a53e3f..e6ec848f8 100644 --- a/web/src/components/MemoContent/Renderer.tsx +++ b/web/src/components/MemoContent/Renderer.tsx @@ -70,7 +70,7 @@ interface Props { const Renderer: React.FC = ({ index, node }: Props) => { switch (node.type) { case NodeType.LINE_BREAK: - return ; + return ; case NodeType.PARAGRAPH: return ; case NodeType.CODE_BLOCK: