Skip to content

Commit 4cff633

Browse files
Merge branch 'development' into Pujitha_fix_engagement_tab
2 parents 5412395 + 0b03be6 commit 4cff633

File tree

369 files changed

+31533
-9532
lines changed

Some content is hidden

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

369 files changed

+31533
-9532
lines changed

.eslintrc.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"rules": {
3+
"no-restricted-imports": [
4+
"error",
5+
{
6+
"patterns": [
7+
"*.css",
8+
"!*.module.css",
9+
"!index.css"
10+
]
11+
}
12+
]
13+
}
14+
}

.github/workflows/deploy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
concurrency:
88
group: Build and Deploy / ${{ github.ref_name == 'main' && 'Production' || 'Development' }}
99
cancel-in-progress: true
10-
jobs:
10+
jobs:
1111
# Build
1212
build:
1313
name: Build
@@ -62,4 +62,4 @@ jobs:
6262
domain: ${{ vars.SURGE_DOMAIN }}
6363
project: './build'
6464
login: ${{ secrets.SURGE_LOGIN }}
65-
token: ${{ secrets.SURGE_TOKEN }}
65+
token: ${{ secrets.SURGE_TOKEN }}

.github/workflows/pull_request_test.yml

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,41 @@ on:
55
branches:
66
- development
77
jobs:
8+
# CSS Enforcement
9+
css-check:
10+
name: Enforce CSS Modules
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout Repository
14+
uses: actions/checkout@v4
15+
with:
16+
fetch-depth: 0
17+
18+
- name: Check for disallowed .css files in changed files
19+
run: |
20+
# Get list of changed CSS files in this PR
21+
changed_files=$(git diff --name-only --diff-filter=ACMR origin/${{ github.base_ref }}...HEAD | grep '\.css$' || true)
22+
23+
if [ -z "$changed_files" ]; then
24+
echo "No CSS files changed in this PR"
25+
exit 0
26+
fi
27+
28+
echo "Changed CSS files:"
29+
echo "$changed_files"
30+
31+
# Check if any of the changed files are disallowed
32+
disallowed=$(echo "$changed_files" | grep -vE '(\.module\.css$|index\.css$)' || true)
33+
34+
if [ -n "$disallowed" ]; then
35+
echo "❌ Disallowed CSS file detected! Only '.module.css' (or 'index.css') files are permitted."
36+
echo "The following files violate the CSS Module policy:"
37+
echo "$disallowed"
38+
exit 1
39+
else
40+
echo "✅ CSS Module Enforcement Check passed - all changed CSS files are valid"
41+
fi
42+
843
test:
944
runs-on: ubuntu-latest
1045
steps:
@@ -20,4 +55,4 @@ jobs:
2055
- name: Run Unit Tests for Changed Files Only
2156
run: yarn run test:changed
2257
- name: Run Lint
23-
run: yarn run lint
58+
run: yarn run lint

.husky/pre-commit

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,25 @@
33

44
echo ""
55
echo "🛡️ Husky pre-commit hook triggered"
6+
7+
# Block plain .css files (except .module.css and index.css)
8+
for file in $(git diff --cached --name-only --diff-filter=ACM | grep '\.css$'); do
9+
case "$file" in
10+
*index.css) ;; # allow index.css
11+
*.module.css) ;; # allow module.css
12+
*)
13+
echo "$file is not allowed. Use .module.css instead."
14+
exit 1
15+
;;
16+
esac
17+
done
18+
619
echo "🛠️ Attempting to auto-fix lint issues (if possible)..."
720
echo "🔍 Running ESLint via lint-staged on staged files:"
8-
git diff --cached --name-only --diff-filter=ACM | grep -E '\.(js|jsx|ts|tsx)$' || echo "No JS/TS files staged."
21+
git diff --cached --name-only --diff-filter=ACM | grep -E '\.(js|jsx|ts|tsx|css)$' || echo "No JS/TS/CSS files staged."
922

1023
# Run lint-staged only if relevant files are staged
11-
if git diff --cached --name-only | grep -qE '\.(js|jsx|ts|tsx)$'; then
24+
if git diff --cached --name-only | grep -qE '\.(js|jsx|ts|tsx|css)$'; then
1225
npx lint-staged
1326
lint_exit_code=$?
1427

@@ -20,5 +33,5 @@ if git diff --cached --name-only | grep -qE '\.(js|jsx|ts|tsx)$'; then
2033
exit $lint_exit_code
2134
fi
2235
else
23-
echo "ℹ️ No JS/TS files to lint. Skipping lint-staged."
36+
echo "ℹ️ No JS/TS/CSS files to lint. Skipping lint-staged."
2437
fi

.stylelintrc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"rules": {
3+
"no-duplicate-selectors": true
4+
}
5+
}

current-sonarqube-issues.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"total":1,"p":1,"ps":500,"paging":{"pageIndex":1,"pageSize":500,"total":1},"effortTotal":6,"debtTotal":6,"issues":[{"key":"AZoEIilLk3K5CKHMSVKQ","rule":"javascript:S3776","severity":"CRITICAL","component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","project":"OneCommunityGlobal_HighestGoodNetworkApp","line":19,"hash":"129ed3f25f350c79b8f03e95823214ef","textRange":{"startLine":19,"endLine":19,"startOffset":9,"endOffset":17},"flows":[{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":113,"endLine":113,"startOffset":29,"endOffset":30},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":118,"endLine":118,"startOffset":46,"endOffset":47},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":119,"endLine":119,"startOffset":28,"endOffset":29},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":125,"endLine":125,"startOffset":32,"endOffset":33},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":152,"endLine":152,"startOffset":23,"endOffset":24},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":168,"endLine":168,"startOffset":36,"endOffset":37},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":168,"endLine":168,"startOffset":22,"endOffset":24},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":180,"endLine":180,"startOffset":29,"endOffset":30},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":183,"endLine":183,"startOffset":28,"endOffset":29},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":186,"endLine":186,"startOffset":53,"endOffset":54},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":193,"endLine":193,"startOffset":28,"endOffset":29},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":196,"endLine":196,"startOffset":21,"endOffset":22},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":203,"endLine":203,"startOffset":28,"endOffset":29},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":206,"endLine":206,"startOffset":74,"endOffset":75},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":213,"endLine":213,"startOffset":66,"endOffset":67},"msg":"+1"}]},{"locations":[{"component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","textRange":{"startLine":217,"endLine":217,"startOffset":36,"endOffset":37},"msg":"+1"}]}],"status":"OPEN","message":"Refactor this function to reduce its Cognitive Complexity from 16 to the 15 allowed.","effort":"6min","debt":"6min","tags":["architecture","brain-overload"],"creationDate":"2025-10-21T00:18:26+0000","updateDate":"2025-10-21T00:18:26+0000","type":"CODE_SMELL","organization":"onecommunityglobal","pullRequest":"4054","cleanCodeAttribute":"FOCUSED","cleanCodeAttributeCategory":"ADAPTABLE","impacts":[{"softwareQuality":"MAINTAINABILITY","severity":"HIGH"}],"issueStatus":"OPEN","projectName":"HighestGoodNetworkApp"}],"components":[{"organization":"onecommunityglobal","key":"OneCommunityGlobal_HighestGoodNetworkApp","uuid":"AZnF4puuDsOhetXBcabH","enabled":true,"qualifier":"TRK","name":"HighestGoodNetworkApp","longName":"HighestGoodNetworkApp","pullRequest":"4054"},{"organization":"onecommunityglobal","key":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","uuid":"AZnRU2j4CG59FxruBTQv","enabled":true,"qualifier":"FIL","name":"WBSTasks.jsx","longName":"src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","path":"src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","pullRequest":"4054"}],"organizations":[{"key":"onecommunityglobal","name":"One Community"}],"facets":[]}

eslint.config.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,9 @@ module.exports = [
2929
'public/**',
3030
'build/**',
3131
// Ignore test files inside /src/components
32-
'src/components/BMDashboard/_tests_/BMDashboard.test.jsx',
3332
'src/components/Reports/PeopleReport/components/PeopleTasksPieChart.test.jsx',
3433
// Ignore entire component folders
3534
'src/components/Badge/**',
36-
'src/components/UserProfile/**',
3735
],
3836
},
3937

final-sonarqube-issues.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"total":2,"p":1,"ps":500,"paging":{"pageIndex":1,"pageSize":500,"total":2},"effortTotal":6,"debtTotal":6,"issues":[{"key":"AZoEHka-zWUHlKwwamic","rule":"javascript:S1481","severity":"MINOR","component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","project":"OneCommunityGlobal_HighestGoodNetworkApp","line":29,"hash":"65e76d7513e47400427dd2f2eb5191cc","textRange":{"startLine":29,"endLine":29,"startOffset":21,"endOffset":34},"flows":[],"status":"OPEN","message":"Remove the declaration of the unused \u0027setShowImport\u0027 variable.","effort":"5min","debt":"5min","tags":["unused"],"creationDate":"2025-10-18T02:48:20+0000","updateDate":"2025-10-18T02:48:35+0000","type":"CODE_SMELL","organization":"onecommunityglobal","pullRequest":"4054","cleanCodeAttribute":"CLEAR","cleanCodeAttributeCategory":"INTENTIONAL","impacts":[{"softwareQuality":"MAINTAINABILITY","severity":"LOW"}],"issueStatus":"OPEN","projectName":"HighestGoodNetworkApp"},{"key":"AZoEHka-zWUHlKwwamid","rule":"javascript:S1854","severity":"MAJOR","component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","project":"OneCommunityGlobal_HighestGoodNetworkApp","line":29,"hash":"65e76d7513e47400427dd2f2eb5191cc","textRange":{"startLine":29,"endLine":29,"startOffset":21,"endOffset":34},"flows":[],"status":"OPEN","message":"Remove this useless assignment to variable \"setShowImport\".","effort":"1min","debt":"1min","tags":["cwe","unused"],"creationDate":"2025-10-18T02:48:20+0000","updateDate":"2025-10-18T02:48:35+0000","type":"CODE_SMELL","organization":"onecommunityglobal","pullRequest":"4054","cleanCodeAttribute":"LOGICAL","cleanCodeAttributeCategory":"INTENTIONAL","impacts":[{"softwareQuality":"MAINTAINABILITY","severity":"MEDIUM"}],"issueStatus":"OPEN","projectName":"HighestGoodNetworkApp"}],"components":[{"organization":"onecommunityglobal","key":"OneCommunityGlobal_HighestGoodNetworkApp","uuid":"AZnF4puuDsOhetXBcabH","enabled":true,"qualifier":"TRK","name":"HighestGoodNetworkApp","longName":"HighestGoodNetworkApp","pullRequest":"4054"},{"organization":"onecommunityglobal","key":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","uuid":"AZnRU2j4CG59FxruBTQv","enabled":true,"qualifier":"FIL","name":"WBSTasks.jsx","longName":"src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","path":"src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","pullRequest":"4054"}],"organizations":[{"key":"onecommunityglobal","name":"One Community"}],"facets":[]}

latest-sonarqube-issues.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"total":2,"p":1,"ps":500,"paging":{"pageIndex":1,"pageSize":500,"total":2},"effortTotal":6,"debtTotal":6,"issues":[{"key":"AZoEHka-zWUHlKwwamic","rule":"javascript:S1481","severity":"MINOR","component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","project":"OneCommunityGlobal_HighestGoodNetworkApp","line":29,"hash":"65e76d7513e47400427dd2f2eb5191cc","textRange":{"startLine":29,"endLine":29,"startOffset":21,"endOffset":34},"flows":[],"status":"OPEN","message":"Remove the declaration of the unused \u0027setShowImport\u0027 variable.","effort":"5min","debt":"5min","tags":["unused"],"creationDate":"2025-10-18T02:48:20+0000","updateDate":"2025-10-18T02:48:35+0000","type":"CODE_SMELL","organization":"onecommunityglobal","pullRequest":"4054","cleanCodeAttribute":"CLEAR","cleanCodeAttributeCategory":"INTENTIONAL","impacts":[{"softwareQuality":"MAINTAINABILITY","severity":"LOW"}],"issueStatus":"OPEN","projectName":"HighestGoodNetworkApp"},{"key":"AZoEHka-zWUHlKwwamid","rule":"javascript:S1854","severity":"MAJOR","component":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","project":"OneCommunityGlobal_HighestGoodNetworkApp","line":29,"hash":"65e76d7513e47400427dd2f2eb5191cc","textRange":{"startLine":29,"endLine":29,"startOffset":21,"endOffset":34},"flows":[],"status":"OPEN","message":"Remove this useless assignment to variable \"setShowImport\".","effort":"1min","debt":"1min","tags":["cwe","unused"],"creationDate":"2025-10-18T02:48:20+0000","updateDate":"2025-10-18T02:48:35+0000","type":"CODE_SMELL","organization":"onecommunityglobal","pullRequest":"4054","cleanCodeAttribute":"LOGICAL","cleanCodeAttributeCategory":"INTENTIONAL","impacts":[{"softwareQuality":"MAINTAINABILITY","severity":"MEDIUM"}],"issueStatus":"OPEN","projectName":"HighestGoodNetworkApp"}],"components":[{"organization":"onecommunityglobal","key":"OneCommunityGlobal_HighestGoodNetworkApp","uuid":"AZnF4puuDsOhetXBcabH","enabled":true,"qualifier":"TRK","name":"HighestGoodNetworkApp","longName":"HighestGoodNetworkApp","pullRequest":"4054"},{"organization":"onecommunityglobal","key":"OneCommunityGlobal_HighestGoodNetworkApp:src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","uuid":"AZnRU2j4CG59FxruBTQv","enabled":true,"qualifier":"FIL","name":"WBSTasks.jsx","longName":"src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","path":"src/components/Projects/WBS/WBSDetail/WBSTasks.jsx","pullRequest":"4054"}],"organizations":[{"key":"onecommunityglobal","name":"One Community"}],"facets":[]}

package.json

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@
2626
"@react-leaflet/core": "^2.1.0",
2727
"@reduxjs/toolkit": "^2.4.0",
2828
"@sentry/browser": "^9.15.0",
29+
"@tanstack/react-query": "^5.85.3",
2930
"@tinymce/miniature": "^6.0.0",
3031
"@tinymce/tinymce-react": "^6.1.0",
3132
"ajv": "^8.0.0",
3233
"ajv-keywords": "^5.1.0",
34+
"antd": "^5.27.4",
3335
"assert": "^2.1.0",
3436
"axios": "^1.11.0",
3537
"axios-mock-adapter": "^1.22.0",
@@ -58,7 +60,7 @@
5860
"html-to-pdfmake": "^2.0.6",
5961
"html2canvas": "^1.4.1",
6062
"jquery": "^3.7.1",
61-
"jspdf": "^3.0.1",
63+
"jspdf": "^3.0.3",
6264
"jwt-decode": "^2.2.0",
6365
"leaflet": "^1.9.4",
6466
"leaflet.heat": "^0.2.0",
@@ -96,6 +98,7 @@
9698
"react-spinners": "^0.15.0",
9799
"react-sticky": "^6.0.3",
98100
"react-table": "^7.8.0",
101+
"react-tagcloud": "^2.3.3",
99102
"react-to-pdf": "^1.0.1",
100103
"react-to-print": "^3.0.5",
101104
"react-toastify": "^5.3.1",
@@ -104,7 +107,7 @@
104107
"reactjs-popup": "^2.0.5",
105108
"reactstrap": "^8.10.1",
106109
"read-excel-file": "^5.5.3",
107-
"recharts": "^2.1.9",
110+
"recharts": "^2.15.3",
108111
"redux": "^4.0.5",
109112
"redux-actions": "^2.6.5",
110113
"redux-concatenate-reducers": "^1.0.0",
@@ -114,7 +117,8 @@
114117
"stream-browserify": "^3.0.0",
115118
"tinymce": "^7.2.0",
116119
"util": "^0.12.5",
117-
"uuid": "^9.0.1"
120+
"uuid": "^9.0.1",
121+
"webpack": "^5.102.1"
118122
},
119123
"resolutions": {
120124
"react": "18.3.1",
@@ -133,6 +137,7 @@
133137
"start:local": "vite",
134138
"lint": "eslint \"**/*.{js,jsx}\"",
135139
"lint:fix": "eslint --fix \"**/*.{js,jsx}\"",
140+
"lint:css": "stylelint \"**/*.{css,scss,sass}\"",
136141
"prepare": "husky install"
137142
},
138143
"browserslist": [
@@ -150,6 +155,7 @@
150155
"@babel/preset-env": "^7.28.0",
151156
"@babel/preset-react": "^7.27.1",
152157
"@eslint/eslintrc": "^3.3.1",
158+
"@humanwhocodes/config-array": "^0.13.0",
153159
"@jest/globals": "^29.7.0",
154160
"@testing-library/dom": "^10.4.0",
155161
"@testing-library/jest-dom": "^5.17.0",
@@ -170,16 +176,19 @@
170176
"eslint-plugin-prettier": "^3.4.1",
171177
"eslint-plugin-react": "^7.37.5",
172178
"eslint-plugin-react-hooks": "^4.6.2",
173-
"eslint-plugin-testing-library": "^7.6.0",
179+
"eslint-plugin-testing-library": "^7.11.0",
174180
"eslint-plugin-vitest": "^0.5.4",
175181
"husky": "^7.0.4",
176182
"joi-browser": "^13.4.0",
177183
"jsdom": "^26.1.0",
184+
"lint-staged": "^16.1.5",
178185
"msw": "^2.10.4",
179186
"prettier": "^1.19.1",
180187
"redux-mock-store": "^1.5.4",
181188
"sass": "^1.86.3",
182189
"sass-loader": "^16.0.5",
190+
"stylelint": "^16.25.0",
191+
"stylelint-config-standard": "^39.0.1",
183192
"typescript": "^4.8.4",
184193
"vite": "^6.3.5",
185194
"vitest": "^3.2.0"
@@ -188,6 +197,7 @@
188197
"*.{js,jsx,ts,tsx}": [
189198
"eslint --fix",
190199
"prettier --write"
191-
]
200+
],
201+
"**/*.{css,scss,sass}": "stylelint"
192202
}
193203
}

0 commit comments

Comments
 (0)