@@ -109,7 +152,7 @@ For self hosting environment setup, visit the [Self Hosting](https://docs.plane.
@@ -118,7 +161,7 @@ For self hosting environment setup, visit the [Self Hosting](https://docs.plane.
@@ -128,7 +171,7 @@ For self hosting environment setup, visit the [Self Hosting](https://docs.plane.
@@ -136,20 +179,22 @@ For self hosting environment setup, visit the [Self Hosting](https://docs.plane.
-## πDocumentation
-
-For full documentation, visit [docs.plane.so](https://docs.plane.so/)
-
-To see how to Contribute, visit [here](https://github.com/makeplane/plane/blob/master/CONTRIBUTING.md).
-
-## β€οΈ Community
-
-The Plane community can be found on GitHub Discussions, where you can ask questions, voice ideas, and share your projects.
-
-To chat with other community members you can join the [Plane Discord](https://discord.com/invite/A92xrEGCge).
-
-Our [Code of Conduct](https://github.com/makeplane/plane/blob/master/CODE_OF_CONDUCT.md) applies to all Plane community channels.
-
## βοΈ Security
-If you believe you have found a security vulnerability in Plane, we encourage you to responsibly disclose this and not open a public issue. We will investigate all legitimate reports. Email engineering@plane.so to disclose any security vulnerabilities.
+If you believe you have found a security vulnerability in Plane, we encourage you to responsibly disclose this and not open a public issue. We will investigate all legitimate reports.
+
+Email squawk@plane.so to disclose any security vulnerabilities.
+
+## β€οΈ Contribute
+
+There are many ways to contribute to Plane, including:
+- Submitting [bugs](https://github.com/makeplane/plane/issues/new?assignees=srinivaspendem%2Cpushya22&labels=%F0%9F%90%9Bbug&projects=&template=--bug-report.yaml&title=%5Bbug%5D%3A+) and [feature requests](https://github.com/makeplane/plane/issues/new?assignees=srinivaspendem%2Cpushya22&labels=%E2%9C%A8feature&projects=&template=--feature-request.yaml&title=%5Bfeature%5D%3A+) for various components.
+- Reviewing [the documentation](https://docs.plane.so/) and submitting [pull requests](https://github.com/makeplane/plane), from fixing typos to adding new features.
+- Speaking or writing about Plane or any other ecosystem integration and [letting us know](https://discord.com/invite/A92xrEGCge)!
+- Upvoting [popular feature requests](https://github.com/makeplane/plane/issues) to show your support.
+
+### We couldn't have done this without you.
+
+
+
+
\ No newline at end of file
From d99529b109fea50d4c74e7fbe7c61b4a23b7bef3 Mon Sep 17 00:00:00 2001
From: "M. Palanikannan" <73993394+Palanikannan1437@users.noreply.github.com>
Date: Mon, 4 Mar 2024 20:33:16 +0530
Subject: [PATCH 003/186] fix: crash while updating link text on the last node
(#3871)
---
.../src/ui/components/links/link-edit-view.tsx | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/packages/editor/document-editor/src/ui/components/links/link-edit-view.tsx b/packages/editor/document-editor/src/ui/components/links/link-edit-view.tsx
index 136d04e01e..9719154399 100644
--- a/packages/editor/document-editor/src/ui/components/links/link-edit-view.tsx
+++ b/packages/editor/document-editor/src/ui/components/links/link-edit-view.tsx
@@ -40,9 +40,11 @@ export const LinkEditView = ({
const [positionRef, setPositionRef] = useState({ from: from, to: to });
const [localUrl, setLocalUrl] = useState(viewProps.url);
- const linkRemoved = useRef();
+ const linkRemoved = useRef();
const getText = (from: number, to: number) => {
+ if (to >= editor.state.doc.content.size) return "";
+
const text = editor.state.doc.textBetween(from, to, "\n");
return text;
};
@@ -72,10 +74,12 @@ export const LinkEditView = ({
const url = isValidUrl(localUrl) ? localUrl : viewProps.url;
+ if (to >= editor.state.doc.content.size) return;
+
editor.view.dispatch(editor.state.tr.removeMark(from, to, editor.schema.marks.link));
editor.view.dispatch(editor.state.tr.addMark(from, to, editor.schema.marks.link.create({ href: url })));
},
- [localUrl]
+ [localUrl, editor, from, to, viewProps.url]
);
const handleUpdateText = (text: string) => {
From af70722e34ceeb09cf2c1bee04a69ce89e7d7791 Mon Sep 17 00:00:00 2001
From: Henit Chobisa
Date: Tue, 5 Mar 2024 13:02:13 +0530
Subject: [PATCH 004/186] chore: added workflow for checking version before
merge to master (#3847)
---
.github/workflows/check-version.yml | 45 +++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
create mode 100644 .github/workflows/check-version.yml
diff --git a/.github/workflows/check-version.yml b/.github/workflows/check-version.yml
new file mode 100644
index 0000000000..ca8b6f8b3e
--- /dev/null
+++ b/.github/workflows/check-version.yml
@@ -0,0 +1,45 @@
+name: Version Change Before Release
+
+on:
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ check-version:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ github.head_ref }}
+ fetch-depth: 0
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: '18'
+
+ - name: Get PR Branch version
+ run: echo "PR_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV
+
+ - name: Fetch base branch
+ run: git fetch origin master:master
+
+ - name: Get Master Branch version
+ run: |
+ git checkout master
+ echo "MASTER_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV
+
+ - name: Get master branch version and compare
+ run: |
+ echo "Comparing versions: PR version is $PR_VERSION, Master version is $MASTER_VERSION"
+ if [ "$PR_VERSION" == "$MASTER_VERSION" ]; then
+ echo "Version in PR branch is the same as in master. Failing the CI."
+ exit 1
+ else
+ echo "Version check passed. Versions are different."
+ fi
+ env:
+ PR_VERSION: ${{ env.PR_VERSION }}
+ MASTER_VERSION: ${{ env.MASTER_VERSION }}
From f8f9dd33311686e94c2386cfe94af14569662d90 Mon Sep 17 00:00:00 2001
From: Henit Chobisa
Date: Tue, 5 Mar 2024 13:14:00 +0530
Subject: [PATCH 005/186] [CHANG-8] chore: Upgraded Build Pull Request CI for
Faster Parallel Build with Linting Capabilities (#3838)
* chore: upgraded build pull request ci for multi stage parallel builds
* Update build-test-pull-request.yml
---
.github/workflows/build-test-pull-request.yml | 111 +++++++++++++-----
1 file changed, 84 insertions(+), 27 deletions(-)
diff --git a/.github/workflows/build-test-pull-request.yml b/.github/workflows/build-test-pull-request.yml
index 83ed41625d..e0014f696f 100644
--- a/.github/workflows/build-test-pull-request.yml
+++ b/.github/workflows/build-test-pull-request.yml
@@ -1,27 +1,19 @@
-name: Build Pull Request Contents
+name: Build and Lint on Pull Request
on:
+ workflow_dispatch:
pull_request:
types: ["opened", "synchronize"]
jobs:
- build-pull-request-contents:
- name: Build Pull Request Contents
- runs-on: ubuntu-20.04
- permissions:
- pull-requests: read
-
+ get-changed-files:
+ runs-on: ubuntu-latest
+ outputs:
+ apiserver_changed: ${{ steps.changed-files.outputs.apiserver_any_changed }}
+ web_changed: ${{ steps.changed-files.outputs.web_any_changed }}
+ space_changed: ${{ steps.changed-files.outputs.deploy_any_changed }}
steps:
- - name: Checkout Repository to Actions
- uses: actions/checkout@v3.3.0
- with:
- token: ${{ secrets.ACCESS_TOKEN }}
-
- - name: Setup Node.js 18.x
- uses: actions/setup-node@v2
- with:
- node-version: 18.x
-
+ - uses: actions/checkout@v3
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v41
@@ -31,17 +23,82 @@ jobs:
- apiserver/**
web:
- web/**
+ - packages/**
+ - 'package.json'
+ - 'yarn.lock'
+ - 'tsconfig.json'
+ - 'turbo.json'
deploy:
- space/**
+ - packages/**
+ - 'package.json'
+ - 'yarn.lock'
+ - 'tsconfig.json'
+ - 'turbo.json'
- - name: Build Plane's Main App
- if: steps.changed-files.outputs.web_any_changed == 'true'
- run: |
- yarn
- yarn build --filter=web
+ lint-apiserver:
+ needs: get-changed-files
+ runs-on: ubuntu-latest
+ if: needs.get-changed-files.outputs.apiserver_changed == 'true'
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: '3.x' # Specify the Python version you need
+ - name: Install Pylint
+ run: python -m pip install ruff
+ - name: Install Apiserver Dependencies
+ run: cd apiserver && pip install -r requirements.txt
+ - name: Lint apiserver
+ run: ruff check --fix apiserver
- - name: Build Plane's Deploy App
- if: steps.changed-files.outputs.deploy_any_changed == 'true'
- run: |
- yarn
- yarn build --filter=space
+ lint-web:
+ needs: get-changed-files
+ if: needs.get-changed-files.outputs.web_changed == 'true'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Setup Node.js
+ uses: actions/setup-node@v2
+ with:
+ node-version: 18.x
+ - run: yarn install
+ - run: yarn lint --filter=web
+
+ lint-space:
+ needs: get-changed-files
+ if: needs.get-changed-files.outputs.space_changed == 'true'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Setup Node.js
+ uses: actions/setup-node@v2
+ with:
+ node-version: 18.x
+ - run: yarn install
+ - run: yarn lint --filter=space
+
+ build-web:
+ needs: lint-web
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Setup Node.js
+ uses: actions/setup-node@v2
+ with:
+ node-version: 18.x
+ - run: yarn install
+ - run: yarn build --filter=web
+
+ build-space:
+ needs: lint-space
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Setup Node.js
+ uses: actions/setup-node@v2
+ with:
+ node-version: 18.x
+ - run: yarn install
+ - run: yarn build --filter=space
From d07dd650222706aaf305b470bf2f6fee0c178b21 Mon Sep 17 00:00:00 2001
From: Manish Gupta <59428681+mguptahub@users.noreply.github.com>
Date: Wed, 6 Mar 2024 12:57:14 +0530
Subject: [PATCH 006/186] feat: feature preview deploys for web and space
nextjs applications (#3881)
* feature preview deploy
* chore: variable name changes
---------
Co-authored-by: sriram veeraghanta
---
.github/workflows/feature-deployment.yml | 73 ++++++++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 .github/workflows/feature-deployment.yml
diff --git a/.github/workflows/feature-deployment.yml b/.github/workflows/feature-deployment.yml
new file mode 100644
index 0000000000..2220a7a846
--- /dev/null
+++ b/.github/workflows/feature-deployment.yml
@@ -0,0 +1,73 @@
+name: Feature Preview
+
+on:
+ workflow_dispatch:
+ inputs:
+ web-build:
+ required: true
+ type: boolean
+ default: true
+ space-build:
+ required: true
+ type: boolean
+ default: false
+
+jobs:
+ feature-deploy:
+ name: Feature Deploy
+ runs-on: ubuntu-latest
+ env:
+ KUBE_CONFIG_FILE: ${{ secrets.KUBE_CONFIG }}
+ BUILD_WEB: ${{ (github.event.inputs.web-build == '' && true) || github.event.inputs.web-build }}
+ BUILD_SPACE: ${{ (github.event.inputs.space-build == '' && false) || github.event.inputs.space-build }}
+
+ steps:
+ - name: Tailscale
+ uses: tailscale/github-action@v2
+ with:
+ oauth-client-id: ${{ secrets.TAILSCALE_OAUTH_CLIENT_ID }}
+ oauth-secret: ${{ secrets.TAILSCALE_OAUTH_SECRET }}
+ tags: tag:ci
+
+ - name: Kubectl Setup
+ run: |
+ curl -LO "https://dl.k8s.io/release/${{secrets.KUBE_VERSION}}/bin/linux/amd64/kubectl"
+ chmod +x kubectl
+
+ mkdir -p ~/.kube
+ echo "$KUBE_CONFIG_FILE" > ~/.kube/config
+ chmod 600 ~/.kube/config
+
+ - name: HELM Setup
+ run: |
+ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
+ chmod 700 get_helm.sh
+ ./get_helm.sh
+
+ - name: App Deploy
+ run: |
+ helm --kube-insecure-skip-tls-verify repo add feature-preview ${{ secrets.FEATURE_PREVIEW_HELM_CHART_URL }}
+ GIT_BRANCH=${{ github.ref_name }}
+ APP_NAMESPACE=${{ secrets.FEATURE_PREVIEW_NAMESPACE }}
+
+ METADATA=$(helm install feature-preview/${{ secrets.FEATURE_PREVIEW_HELM_CHART_NAME }} \
+ --kube-insecure-skip-tls-verify \
+ --generate-name \
+ --namespace $APP_NAMESPACE \
+ --set shared_config.git_repo=${{ github.repositoryUrl }} \
+ --set shared_config.git_branch="$GIT_BRANCH" \
+ --set web.enabled=${{ env.BUILD_WEB }} \
+ --set space.enabled=${{ env.BUILD_SPACE }} \
+ --output json \
+ --timeout 1000s)
+
+ APP_NAME=$(echo $METADATA | jq -r '.name')
+
+ INGRESS_HOSTNAME=$(kubectl get ingress -n feature-builds --insecure-skip-tls-verify \
+ -o jsonpath='{.items[?(@.metadata.annotations.meta\.helm\.sh\/release-name=="'$APP_NAME'")]}' | \
+ jq -r '.spec.rules[0].host')
+
+ echo "****************************************"
+ echo "APP NAME ::: $APP_NAME"
+ echo "INGRESS HOSTNAME ::: $INGRESS_HOSTNAME"
+ echo "****************************************"
From 4d0f641ee0cae4fac344c6caaa44abc602442369 Mon Sep 17 00:00:00 2001
From: Prateek Shourya
Date: Wed, 6 Mar 2024 14:02:14 +0530
Subject: [PATCH 007/186] [WEB-588] chore: remove the word `title` from the
issue title tooltip. (#3874)
* [WEB-588] chore: remove the word `title` from the issue title tooltip.
* fix: github url fixes in feature deploy action
---------
Co-authored-by: sriram veeraghanta
---
.github/workflows/feature-deployment.yml | 2 +-
web/components/cycles/active-cycle-details.tsx | 2 +-
web/components/issues/issue-layouts/calendar/issue-blocks.tsx | 2 +-
web/components/issues/issue-layouts/gantt/blocks.tsx | 2 +-
web/components/issues/issue-layouts/kanban/block.tsx | 4 ++--
web/components/issues/issue-layouts/list/block.tsx | 4 ++--
web/components/issues/issue-layouts/spreadsheet/issue-row.tsx | 4 ++--
web/components/issues/sub-issues/issue-list-item.tsx | 2 +-
8 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/.github/workflows/feature-deployment.yml b/.github/workflows/feature-deployment.yml
index 2220a7a846..7b9f5ffcc4 100644
--- a/.github/workflows/feature-deployment.yml
+++ b/.github/workflows/feature-deployment.yml
@@ -54,7 +54,7 @@ jobs:
--kube-insecure-skip-tls-verify \
--generate-name \
--namespace $APP_NAMESPACE \
- --set shared_config.git_repo=${{ github.repositoryUrl }} \
+ --set shared_config.git_repo=${{github.server_url}}/${{ github.repository }}.git \
--set shared_config.git_branch="$GIT_BRANCH" \
--set web.enabled=${{ env.BUILD_WEB }} \
--set space.enabled=${{ env.BUILD_SPACE }} \
diff --git a/web/components/cycles/active-cycle-details.tsx b/web/components/cycles/active-cycle-details.tsx
index 1fae0412f5..425ce7df3f 100644
--- a/web/components/cycles/active-cycle-details.tsx
+++ b/web/components/cycles/active-cycle-details.tsx
@@ -311,7 +311,7 @@ export const ActiveCycleDetails: React.FC = observer((props
{currentProjectDetails?.identifier}-{issue.sequence_id}
-
+
{truncateText(issue.name, 30)}
diff --git a/web/components/issues/issue-layouts/calendar/issue-blocks.tsx b/web/components/issues/issue-layouts/calendar/issue-blocks.tsx
index b5d0c43460..ac60053726 100644
--- a/web/components/issues/issue-layouts/calendar/issue-blocks.tsx
+++ b/web/components/issues/issue-layouts/calendar/issue-blocks.tsx
@@ -110,7 +110,7 @@ export const CalendarIssueBlocks: React.FC = observer((props) => {
{getProjectIdentifierById(issue?.project_id)}-{issue.sequence_id}
-
+
{issue.name}
diff --git a/web/components/issues/issue-layouts/gantt/blocks.tsx b/web/components/issues/issue-layouts/gantt/blocks.tsx
index 209d876ac5..7303135491 100644
--- a/web/components/issues/issue-layouts/gantt/blocks.tsx
+++ b/web/components/issues/issue-layouts/gantt/blocks.tsx
@@ -97,7 +97,7 @@ export const IssueGanttSidebarBlock: React.FC = observer((props) => {
{projectIdentifier} {issueDetails?.sequence_id}
-
+
{issueDetails?.name}
diff --git a/web/components/issues/issue-layouts/kanban/block.tsx b/web/components/issues/issue-layouts/kanban/block.tsx
index be27f77068..602c6a9341 100644
--- a/web/components/issues/issue-layouts/kanban/block.tsx
+++ b/web/components/issues/issue-layouts/kanban/block.tsx
@@ -71,7 +71,7 @@ const KanbanIssueDetailsBlock: React.FC = observer((prop
{issue?.is_draft ? (
-
+
{issue.name}
) : (
@@ -84,7 +84,7 @@ const KanbanIssueDetailsBlock: React.FC = observer((prop
className="w-full line-clamp-1 cursor-pointer text-sm text-custom-text-100"
disabled={!!issue?.tempId}
>
-
+
{issue.name}
diff --git a/web/components/issues/issue-layouts/list/block.tsx b/web/components/issues/issue-layouts/list/block.tsx
index cc04ed7162..90fee10cc7 100644
--- a/web/components/issues/issue-layouts/list/block.tsx
+++ b/web/components/issues/issue-layouts/list/block.tsx
@@ -65,7 +65,7 @@ export const IssueBlock: React.FC = observer((props: IssueBlock
)}
{issue?.is_draft ? (
-
+
{issue.name}
) : (
@@ -78,7 +78,7 @@ export const IssueBlock: React.FC = observer((props: IssueBlock
className="w-full line-clamp-1 cursor-pointer text-sm text-custom-text-100"
disabled={!!issue?.tempId}
>
-
+
{issue.name}
diff --git a/web/components/issues/issue-layouts/spreadsheet/issue-row.tsx b/web/components/issues/issue-layouts/spreadsheet/issue-row.tsx
index 9f4810c780..abf6c3a014 100644
--- a/web/components/issues/issue-layouts/spreadsheet/issue-row.tsx
+++ b/web/components/issues/issue-layouts/spreadsheet/issue-row.tsx
@@ -241,9 +241,9 @@ const IssueRowDetails = observer((props: IssueRowDetailsProps) => {
disabled={!!issueDetail?.tempId}
>
-
+
{issueDetail.name}
diff --git a/web/components/issues/sub-issues/issue-list-item.tsx b/web/components/issues/sub-issues/issue-list-item.tsx
index c6b87411d4..a748e986e9 100644
--- a/web/components/issues/sub-issues/issue-list-item.tsx
+++ b/web/components/issues/sub-issues/issue-list-item.tsx
@@ -117,7 +117,7 @@ export const IssueListItem: React.FC
= observer((props) => {
onClick={() => handleIssuePeekOverview(issue)}
className="w-full line-clamp-1 cursor-pointer text-sm text-custom-text-100"
>
-
+
{issue.name}
From c06ef4d1d77942d68a7f082f119712535312429a Mon Sep 17 00:00:00 2001
From: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Date: Wed, 6 Mar 2024 14:18:19 +0530
Subject: [PATCH 008/186] [WEB-579] style: scrollbar implementation (#3835)
* style: scrollbar added in profile summary and sidebar
* style: scrollbar added in modals
* style: scrollbar added in project setting screens
* style: scrollbar added in workspace and profile settings
* style: scrollbar added in dropdowns and filters
---
.../analytics/custom-analytics/main-content.tsx | 2 +-
.../custom-analytics/sidebar/projects-list.tsx | 4 ++--
.../analytics/custom-analytics/sidebar/sidebar.tsx | 2 +-
web/components/core/image-picker-popover.tsx | 2 +-
.../core/modals/existing-issues-list-modal.tsx | 2 +-
web/components/emoji-icon-picker/index.tsx | 2 +-
.../display-filters/display-filters-selection.tsx | 2 +-
.../filters/header/filters/filters-selection.tsx | 2 +-
web/components/issues/parent-issues-list-modal.tsx | 5 ++++-
web/components/profile/sidebar.tsx | 11 ++++++-----
web/layouts/settings-layout/profile/layout.tsx | 4 +++-
.../settings-layout/profile/preferences/layout.tsx | 4 +++-
web/layouts/settings-layout/profile/sidebar.tsx | 4 ++--
web/layouts/settings-layout/project/layout.tsx | 4 +++-
web/layouts/settings-layout/workspace/layout.tsx | 4 ++--
web/pages/[workspaceSlug]/profile/[userId]/index.tsx | 2 +-
.../projects/[projectId]/settings/estimates.tsx | 2 +-
.../projects/[projectId]/settings/integrations.tsx | 2 +-
.../projects/[projectId]/settings/labels.tsx | 2 +-
web/pages/[workspaceSlug]/settings/api-tokens.tsx | 2 +-
web/pages/[workspaceSlug]/settings/webhooks/index.tsx | 2 +-
web/pages/profile/activity.tsx | 2 +-
web/pages/profile/index.tsx | 2 +-
web/pages/profile/preferences/email.tsx | 2 +-
24 files changed, 41 insertions(+), 31 deletions(-)
diff --git a/web/components/analytics/custom-analytics/main-content.tsx b/web/components/analytics/custom-analytics/main-content.tsx
index 3c199f8078..7781e78696 100644
--- a/web/components/analytics/custom-analytics/main-content.tsx
+++ b/web/components/analytics/custom-analytics/main-content.tsx
@@ -33,7 +33,7 @@ export const CustomAnalyticsMainContent: React.FC = (props) => {
{!error ? (
analytics ? (
analytics.total > 0 ? (
-
+
= observer((pro
return (
Selected Projects
-
+
{projectIds.map((projectId) => {
const project = getProjectById(projectId);
@@ -42,7 +42,7 @@ export const CustomAnalyticsSidebarProjectsList: React.FC
= observer((pro
({project.identifier})
-
+
diff --git a/web/components/analytics/custom-analytics/sidebar/sidebar.tsx b/web/components/analytics/custom-analytics/sidebar/sidebar.tsx
index 3ad2805f28..bf1c80fea7 100644
--- a/web/components/analytics/custom-analytics/sidebar/sidebar.tsx
+++ b/web/components/analytics/custom-analytics/sidebar/sidebar.tsx
@@ -1,4 +1,4 @@
-import { useEffect, } from "react";
+import { useEffect } from "react";
import { useRouter } from "next/router";
import { observer } from "mobx-react-lite";
import { mutate } from "swr";
diff --git a/web/components/core/image-picker-popover.tsx b/web/components/core/image-picker-popover.tsx
index b2e4c4c9fd..09a1fd4e4d 100644
--- a/web/components/core/image-picker-popover.tsx
+++ b/web/components/core/image-picker-popover.tsx
@@ -187,7 +187,7 @@ export const ImagePickerPopover: React.FC
= observer((props) => {
);
})}
-
+
{(unsplashImages || !unsplashError) && (
diff --git a/web/components/core/modals/existing-issues-list-modal.tsx b/web/components/core/modals/existing-issues-list-modal.tsx
index c4fa25c6d6..1b6a1e76bd 100644
--- a/web/components/core/modals/existing-issues-list-modal.tsx
+++ b/web/components/core/modals/existing-issues-list-modal.tsx
@@ -184,7 +184,7 @@ export const ExistingIssuesListModal: React.FC
= (props) => {
)}
-
+
{searchTerm !== "" && (
Search results for{" "}
diff --git a/web/components/emoji-icon-picker/index.tsx b/web/components/emoji-icon-picker/index.tsx
index 57d5d88967..9c45e53568 100644
--- a/web/components/emoji-icon-picker/index.tsx
+++ b/web/components/emoji-icon-picker/index.tsx
@@ -94,7 +94,7 @@ const EmojiIconPicker: React.FC = (props) => {
))}
-
+
{recentEmojis.length > 0 && (
diff --git a/web/components/issues/issue-layouts/filters/header/display-filters/display-filters-selection.tsx b/web/components/issues/issue-layouts/filters/header/display-filters/display-filters-selection.tsx
index 131bea46bc..b8988580aa 100644
--- a/web/components/issues/issue-layouts/filters/header/display-filters/display-filters-selection.tsx
+++ b/web/components/issues/issue-layouts/filters/header/display-filters/display-filters-selection.tsx
@@ -37,7 +37,7 @@ export const DisplayFiltersSelection: React.FC
= observer((props) => {
Object.keys(layoutDisplayFiltersOptions?.display_filters ?? {}).includes(displayFilter);
return (
-
+
{/* display properties */}
{layoutDisplayFiltersOptions?.display_properties && (
diff --git a/web/components/issues/issue-layouts/filters/header/filters/filters-selection.tsx b/web/components/issues/issue-layouts/filters/header/filters/filters-selection.tsx
index afdee86f2c..ae7ded8b2d 100644
--- a/web/components/issues/issue-layouts/filters/header/filters/filters-selection.tsx
+++ b/web/components/issues/issue-layouts/filters/header/filters/filters-selection.tsx
@@ -63,7 +63,7 @@ export const FilterSelection: React.FC
= observer((props) => {
)}
-
+
{/* priority */}
{isFilterEnabled("priority") && (
diff --git a/web/components/issues/parent-issues-list-modal.tsx b/web/components/issues/parent-issues-list-modal.tsx
index c8520562e4..b97eafc064 100644
--- a/web/components/issues/parent-issues-list-modal.tsx
+++ b/web/components/issues/parent-issues-list-modal.tsx
@@ -136,7 +136,10 @@ export const ParentIssuesListModal: React.FC
= ({
-
+
{searchTerm !== "" && (
Search results for{" "}
diff --git a/web/components/profile/sidebar.tsx b/web/components/profile/sidebar.tsx
index 107c1f5281..71d935d3c8 100644
--- a/web/components/profile/sidebar.tsx
+++ b/web/components/profile/sidebar.tsx
@@ -76,7 +76,7 @@ export const ProfileSidebar = observer(() => {
return (
{userProjectsData ? (
@@ -162,12 +162,13 @@ export const ProfileSidebar = observer(() => {
{project.assigned_issues > 0 && (
{completedIssuePercentage}%
diff --git a/web/layouts/settings-layout/profile/layout.tsx b/web/layouts/settings-layout/profile/layout.tsx
index 08dfd55098..5bf5f0eeae 100644
--- a/web/layouts/settings-layout/profile/layout.tsx
+++ b/web/layouts/settings-layout/profile/layout.tsx
@@ -21,7 +21,9 @@ export const ProfileSettingsLayout: FC = (props) => {
{header}
- {children}
+
+ {children}
+
diff --git a/web/layouts/settings-layout/profile/preferences/layout.tsx b/web/layouts/settings-layout/profile/preferences/layout.tsx
index 0e1d315876..116813958f 100644
--- a/web/layouts/settings-layout/profile/preferences/layout.tsx
+++ b/web/layouts/settings-layout/profile/preferences/layout.tsx
@@ -73,7 +73,9 @@ export const ProfilePreferenceSettingsLayout: FC
{header}
- {children}
+
+ {children}
+
diff --git a/web/layouts/settings-layout/profile/sidebar.tsx b/web/layouts/settings-layout/profile/sidebar.tsx
index 85f82961fe..3e515cc647 100644
--- a/web/layouts/settings-layout/profile/sidebar.tsx
+++ b/web/layouts/settings-layout/profile/sidebar.tsx
@@ -129,7 +129,7 @@ export const ProfileLayoutSidebar = observer(() => {
{!sidebarCollapsed && (
Your account
)}
-
+
{PROFILE_ACTION_LINKS.map((link) => {
if (link.key === "change-password" && currentUser?.is_password_autoset) return null;
@@ -157,7 +157,7 @@ export const ProfileLayoutSidebar = observer(() => {
Workspaces
)}
{workspacesList && workspacesList.length > 0 && (
-
+
{workspacesList.map((workspace) => (
= observer((props)
-
{children}
+
+ {children}
+
);
});
diff --git a/web/layouts/settings-layout/workspace/layout.tsx b/web/layouts/settings-layout/workspace/layout.tsx
index 4ee0f1e335..3d5d057beb 100644
--- a/web/layouts/settings-layout/workspace/layout.tsx
+++ b/web/layouts/settings-layout/workspace/layout.tsx
@@ -10,11 +10,11 @@ export const WorkspaceSettingLayout: FC
= (props) => {
const { children } = props;
return (
-
+
-
diff --git a/web/pages/[workspaceSlug]/profile/[userId]/index.tsx b/web/pages/[workspaceSlug]/profile/[userId]/index.tsx
index a4d1debe1c..7d24a8b111 100644
--- a/web/pages/[workspaceSlug]/profile/[userId]/index.tsx
+++ b/web/pages/[workspaceSlug]/profile/[userId]/index.tsx
@@ -45,7 +45,7 @@ const ProfileOverviewPage: NextPageWithLayout = () => {
return (
<>
-
+
diff --git a/web/pages/[workspaceSlug]/projects/[projectId]/settings/estimates.tsx b/web/pages/[workspaceSlug]/projects/[projectId]/settings/estimates.tsx
index 3aea45adbc..70108f90a0 100644
--- a/web/pages/[workspaceSlug]/projects/[projectId]/settings/estimates.tsx
+++ b/web/pages/[workspaceSlug]/projects/[projectId]/settings/estimates.tsx
@@ -26,7 +26,7 @@ const EstimatesSettingsPage: NextPageWithLayout = observer(() => {
return (
<>
-
+
>
diff --git a/web/pages/[workspaceSlug]/projects/[projectId]/settings/integrations.tsx b/web/pages/[workspaceSlug]/projects/[projectId]/settings/integrations.tsx
index 06246f1c20..5c9faae7cd 100644
--- a/web/pages/[workspaceSlug]/projects/[projectId]/settings/integrations.tsx
+++ b/web/pages/[workspaceSlug]/projects/[projectId]/settings/integrations.tsx
@@ -56,7 +56,7 @@ const ProjectIntegrationsPage: NextPageWithLayout = observer(() => {
return (
<>
-
+
Integrations
diff --git a/web/pages/[workspaceSlug]/projects/[projectId]/settings/labels.tsx b/web/pages/[workspaceSlug]/projects/[projectId]/settings/labels.tsx
index 3bb1c8c04b..d62ac1e665 100644
--- a/web/pages/[workspaceSlug]/projects/[projectId]/settings/labels.tsx
+++ b/web/pages/[workspaceSlug]/projects/[projectId]/settings/labels.tsx
@@ -19,7 +19,7 @@ const LabelsSettingsPage: NextPageWithLayout = observer(() => {
return (
<>
-
+
>
diff --git a/web/pages/[workspaceSlug]/settings/api-tokens.tsx b/web/pages/[workspaceSlug]/settings/api-tokens.tsx
index 1f203ff04c..35366cb0a2 100644
--- a/web/pages/[workspaceSlug]/settings/api-tokens.tsx
+++ b/web/pages/[workspaceSlug]/settings/api-tokens.tsx
@@ -71,7 +71,7 @@ const ApiTokensPage: NextPageWithLayout = observer(() => {
<>
setIsCreateTokenModalOpen(false)} />
-
+
{tokens.length > 0 ? (
<>
diff --git a/web/pages/[workspaceSlug]/settings/webhooks/index.tsx b/web/pages/[workspaceSlug]/settings/webhooks/index.tsx
index 46c7e99cb7..19f23913ef 100644
--- a/web/pages/[workspaceSlug]/settings/webhooks/index.tsx
+++ b/web/pages/[workspaceSlug]/settings/webhooks/index.tsx
@@ -70,7 +70,7 @@ const WebhooksListPage: NextPageWithLayout = observer(() => {
return (
<>
-
+
{
Activity
{userActivity ? (
-
+
{userActivity.results.map((activityItem: any) => {
if (activityItem.field === "comment") {
diff --git a/web/pages/profile/index.tsx b/web/pages/profile/index.tsx
index bdde41d08f..c4eab324a8 100644
--- a/web/pages/profile/index.tsx
+++ b/web/pages/profile/index.tsx
@@ -163,7 +163,7 @@ const ProfileSettingsPage: NextPageWithLayout = observer(() => {
)}
/>
setDeactivateAccountModal(false)} />
-