Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
e44a26b
chore: fix lint
aheckmann Jul 15, 2025
5fff6c9
fix: constants check:lint command
aheckmann Jul 15, 2025
a7c2f61
chore(lint): permit unused vars which begin w/ _
aheckmann Jul 15, 2025
4b1c75f
chore: rm dead code
aheckmann Jul 15, 2025
1a80937
fix(lint): more lint fixes to constants pkg
aheckmann Jul 15, 2025
882069d
fix(lint): lint the live server
aheckmann Jul 15, 2025
dff5f88
chore: improve clean script
aheckmann Jul 17, 2025
d1ceda6
fix(lint): more lint
aheckmann Jul 17, 2025
7bcba27
chore: set live server process title
aheckmann Jul 17, 2025
7cbe62b
chore(deps): update to turbo@2.5.5
aheckmann Jul 17, 2025
ac64e24
chore(live): target node22
aheckmann Jul 17, 2025
932f73d
fix(dev): add missing ui pkg dependency
aheckmann Jul 17, 2025
5722cf1
fix(dev): lint decorators
aheckmann Jul 17, 2025
b125296
fix(dev): lint space app
aheckmann Jul 17, 2025
5221a7b
fix(dev): address lint issues in types pkg
aheckmann Jul 17, 2025
bb0f670
fix(dev): lint editor pkg
aheckmann Jul 17, 2025
b238a1e
chore(dev): moar lint
aheckmann Jul 18, 2025
dbc5694
fix(dev): live server exit code
aheckmann Jul 18, 2025
707c3dd
chore: address PR feedback
aheckmann Jul 18, 2025
61275e8
fix(lint): better TPageExtended type
aheckmann Jul 18, 2025
d67e425
chore: refactor
aheckmann Jul 18, 2025
4918327
chore: revert most live server changes
aheckmann Jul 18, 2025
e8924fa
fix: few more lint issues
aheckmann Jul 21, 2025
174942e
chore: enable ci checks
aheckmann Jul 21, 2025
993fa0e
chore: address PR feedback
aheckmann Jul 22, 2025
241b8ce
fix: web lint warning added to package.json
sriramveeraghanta Jul 24, 2025
f2d3706
fix: ci:lint command
sriramveeraghanta Jul 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 0 additions & 95 deletions .github/workflows/build-test-pull-request.yml

This file was deleted.

29 changes: 29 additions & 0 deletions .github/workflows/pull-request-build-lint-api.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Build and lint API

on:
workflow_dispatch:
pull_request:
branches: ["preview"]
types: ["opened", "synchronize", "ready_for_review", "review_requested", "reopened"]
paths:
- "apps/api/**"

jobs:
lint-api:
runs-on: ubuntu-latest
timeout-minutes: 15
if: |
github.event.pull_request.draft == false &&
github.event.pull_request.requested_reviewers != null
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install Pylint
run: python -m pip install ruff
- name: Install API Dependencies
run: cd apps/api && pip install -r requirements.txt
- name: Lint apps/api
run: ruff check --fix apps/api
42 changes: 42 additions & 0 deletions .github/workflows/pull-request-build-lint-web-apps.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Build and lint web apps

on:
workflow_dispatch:
pull_request:
branches: ["preview"]
types: ["opened", "synchronize", "ready_for_review", "review_requested", "reopened"]
paths:
- "**.tsx?"
- "**.jsx?"
- "**.css"
- "**.json"
- "!apps/api/**"

jobs:
build-and-lint:
runs-on: ubuntu-latest
timeout-minutes: 15
if: |
github.event.pull_request.draft == false &&
github.event.pull_request.requested_reviewers != null
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"

- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Build web apps
run: yarn run build

- name: Lint web apps
run: yarn run ci:lint


1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
lts/jod
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,11 @@ const InstanceGitlabAuthenticationPage = observer(() => {
<ToggleSwitch
value={Boolean(parseInt(enableGitlabConfig))}
onChange={() => {
Boolean(parseInt(enableGitlabConfig)) === true
? updateConfig("IS_GITLAB_ENABLED", "0")
: updateConfig("IS_GITLAB_ENABLED", "1");
if (Boolean(parseInt(enableGitlabConfig)) === true) {
updateConfig("IS_GITLAB_ENABLED", "0");
} else {
updateConfig("IS_GITLAB_ENABLED", "1");
}
}}
size="sm"
disabled={isSubmitting || !formattedConfig}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,11 @@ const InstanceGoogleAuthenticationPage = observer(() => {
<ToggleSwitch
value={Boolean(parseInt(enableGoogleConfig))}
onChange={() => {
Boolean(parseInt(enableGoogleConfig)) === true
? updateConfig("IS_GOOGLE_ENABLED", "0")
: updateConfig("IS_GOOGLE_ENABLED", "1");
if (Boolean(parseInt(enableGoogleConfig)) === true) {
updateConfig("IS_GOOGLE_ENABLED", "0");
} else {
updateConfig("IS_GOOGLE_ENABLED", "1");
}
}}
size="sm"
disabled={isSubmitting || !formattedConfig}
Expand Down
2 changes: 1 addition & 1 deletion apps/admin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"preview": "next build && next start",
"start": "next start",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist",
"check:lint": "eslint . --max-warnings 0",
"check:lint": "eslint . --max-warnings 19",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
Expand Down
9 changes: 5 additions & 4 deletions apps/live/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"dev": "tsup --watch --onSuccess 'node --env-file=.env dist/server.js'",
"build": "tsc --noEmit && tsup",
"start": "node --env-file=.env dist/server.js",
"check:lint": "eslint . --max-warnings 0",
"check:lint": "eslint . --max-warnings 10",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
Expand Down Expand Up @@ -51,14 +51,15 @@
"@types/compression": "1.8.1",
"@types/cors": "^2.8.17",
"@types/dotenv": "^8.2.0",
"@types/express": "^4.17.21",
"@types/express-ws": "^3.0.4",
"@types/express": "^4.17.23",
"@types/express-ws": "^3.0.5",
"@types/node": "^20.14.9",
"@types/pino-http": "^5.8.4",
"concurrently": "^9.0.1",
"nodemon": "^3.1.7",
"ts-node": "^10.9.2",
"tsup": "8.4.0",
"typescript": "5.8.3"
"typescript": "5.8.3",
"ws": "^8.18.3"
}
}
2 changes: 1 addition & 1 deletion apps/live/src/ce/types/common.d.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export type TAdditionalDocumentTypes = {};
export type TAdditionalDocumentTypes = never;
1 change: 1 addition & 0 deletions apps/live/src/core/helpers/logger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ const transport = {
};

const hooks = {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
logMethod(inputArgs: any, method: any): any {
if (inputArgs.length >= 2) {
const arg1 = inputArgs.shift();
Expand Down
2 changes: 1 addition & 1 deletion apps/live/src/core/hocuspocus-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ export const getHocusPocusServer = async () => {
cookie,
userId,
});
} catch (error) {
} catch (_error) {
throw Error("Authentication unsuccessful!");
}
},
Expand Down
2 changes: 1 addition & 1 deletion apps/live/src/core/services/api.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ export abstract class APIService {
return this.axiosInstance.patch(url, data, config);
}

delete(url: string, data?: any, config = {}) {
delete(url: string, data?: Record<string, unknown> | null | string, config = {}) {
return this.axiosInstance.delete(url, { data, ...config });
}

Expand Down
8 changes: 4 additions & 4 deletions apps/space/app/[workspaceSlug]/[projectId]/page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ type Props = {
workspaceSlug: string;
projectId: string;
};
searchParams: any;
searchParams: Record<"board" | "peekId", string | string[] | undefined>;
};

export default async function IssuesPage(props: Props) {
Expand All @@ -23,16 +23,16 @@ export default async function IssuesPage(props: Props) {
try {
response = await publishService.retrieveSettingsByProjectId(workspaceSlug, projectId);
} catch (error) {
// redirect to 404 page on error
console.error("Error fetching project publish settings:", error);
notFound();
}

let url = "";
if (response?.entity_name === "project") {
url = `/issues/${response?.anchor}`;
const params = new URLSearchParams();
if (board) params.append("board", board);
if (peekId) params.append("peekId", peekId);
if (board) params.append("board", String(board));
if (peekId) params.append("peekId", String(peekId));
if (params.toString()) url += `?${params.toString()}`;
redirect(url);
} else {
Expand Down
4 changes: 3 additions & 1 deletion apps/space/core/components/account/auth-forms/password.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,9 @@ export const AuthPasswordForm: React.FC<Props> = observer((props: Props) => {
onSubmit={async (event) => {
event.preventDefault();
await handleCSRFToken();
formRef.current && formRef.current.submit();
if (formRef.current) {
formRef.current.submit();
}
setIsSubmitting(true);
}}
onError={() => setIsSubmitting(false)}
Expand Down
2 changes: 1 addition & 1 deletion apps/space/core/components/account/oauth/github-button.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { FC } from "react";
import { useSearchParams } from "next/navigation";
import Image from "next/image";
import { useSearchParams } from "next/navigation";
import { useTheme } from "next-themes";
import { API_BASE_URL } from "@plane/constants";
// images
Expand Down
2 changes: 1 addition & 1 deletion apps/space/core/components/account/oauth/gitlab-button.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { FC } from "react";
import { useSearchParams } from "next/navigation";
import Image from "next/image";
import { useSearchParams } from "next/navigation";
import { useTheme } from "next-themes";
import { API_BASE_URL } from "@plane/constants";
// images
Expand Down
2 changes: 1 addition & 1 deletion apps/space/core/components/account/oauth/google-button.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { FC } from "react";
import { useSearchParams } from "next/navigation";
import Image from "next/image";
import { useSearchParams } from "next/navigation";
import { useTheme } from "next-themes";
import { API_BASE_URL } from "@plane/constants";
// images
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,10 @@ export const AppliedFiltersList: React.FC<Props> = observer((props) => {
{filterKey === "priority" && (
<AppliedPriorityFilters
handleRemove={(val) => handleRemoveFilter("priority", val)}
values={filterValue ?? []}
values={(filterValue ?? []) as TFilters["priority"]}
/>
)}

{/* {filterKey === "labels" && labels && (
<AppliedLabelsFilters
handleRemove={(val) => handleRemoveFilter("labels", val)}
labels={labels}
values={value}
/>
)} */}

{filterKey === "state" && (
<AppliedStateFilters
handleRemove={(val) => handleRemoveFilter("state", val)}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
"use client";

import { X } from "lucide-react";
import { PriorityIcon } from "@plane/ui";
import { PriorityIcon, type TIssuePriorities } from "@plane/ui";

type Props = {
handleRemove: (val: string) => void;
values: string[];
values: TIssuePriorities[];
};

export const AppliedPriorityFilters: React.FC<Props> = (props) => {
Expand All @@ -17,7 +17,7 @@ export const AppliedPriorityFilters: React.FC<Props> = (props) => {
values.length > 0 &&
values.map((priority) => (
<div key={priority} className="flex items-center gap-1 rounded bg-custom-background-80 p-1 text-xs">
<PriorityIcon priority={priority as any} className={`h-3 w-3`} />
<PriorityIcon priority={priority} className={`h-3 w-3`} />
{priority}
<button
type="button"
Expand Down
Loading
Loading