Skip to content

Commit bb340a3

Browse files
Merge pull request #4293 from RedisInsight/fe/feature/RI-5411_Optimize_builds2
2 parents a73eb88 + 50b8079 commit bb340a3

File tree

99 files changed

+5301
-13552
lines changed

Some content is hidden

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

99 files changed

+5301
-13552
lines changed

.github/workflows/aws-upload-dev.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,19 @@ jobs:
5353
aws s3 cp release/ s3://${AWS_BUCKET_NAME_TEST}/public/upgrades --recursive
5454
aws s3 cp release/ s3://${AWS_BUCKET_NAME_TEST}/public/pre-release/${APP_VERSION} --recursive
5555
56+
- name: Download vendor plugins
57+
uses: actions/download-artifact@v4
58+
id: download-vendor
59+
continue-on-error: true
60+
with:
61+
name: 'vendor-plugins'
62+
path: vendor
63+
64+
- name: Upload vendor plugins to s3 bucket
65+
if: steps.download-vendor.outcome == 'success'
66+
run: |
67+
aws s3 cp vendor/ s3://${AWS_BUCKET_NAME_TEST}/public/plugins/static/ --recursive
68+
5669
- name: Generate job summary
5770
run: |
5871
node ./.github/generate-build-summary.js

.github/workflows/pipeline-build-linux.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,13 @@ jobs:
7777
yarn package:stage --linux $target
7878
fi
7979
80+
- uses: actions/upload-artifact@v4
81+
name: Upload vendor for plugins
82+
with:
83+
name: vendor-plugins
84+
path: |
85+
./vendor
86+
8087
- uses: actions/upload-artifact@v4
8188
name: Upload linux builds
8289
with:

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ vendor
7070
redisinsight/main.js.LICENSE.txt
7171
redisinsight/main.prod.js.LICENSE.txt
7272
licenses
73+
redisinsight/ui/src/packages/common/index*
7374

7475

7576
# E2E tests report

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@
210210
"vite": "^5.4.9",
211211
"vite-bundle-visualizer": "1.0.1",
212212
"vite-plugin-compression2": "^1.1.0",
213+
"vite-plugin-ejs": "^1.7.0",
213214
"vite-plugin-electron": "^0.28.6",
214215
"vite-plugin-electron-renderer": "^0.14.5",
215216
"vite-plugin-react-click-to-component": "^3.0.0",

redisinsight/api/src/modules/cluster-monitor/cluster-monitor.controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export class ClusterMonitorController {
1313

1414
@ApiEndpoint({
1515
statusCode: 200,
16-
description: 'Get list of available plugins',
16+
description: 'Get cluster details',
1717
responses: [
1818
{
1919
status: 200,

redisinsight/ui/index.html

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,54 @@
1919
window.__RI_PROXY_PATH__ = undefined;
2020
}
2121
</script>
22+
23+
<style>
24+
#page-placeholder {
25+
display: flex;
26+
background-color: black;
27+
width: 100vw;
28+
height: 100vh;
29+
position: fixed;
30+
justify-content: center;
31+
align-items: center;
32+
top: 0;
33+
z-index: 100;
34+
}
35+
36+
#page-placeholder__icon {
37+
width: 28px;
38+
height: 28px;
39+
animation: nonstop-jump 1s ease-in-out infinite;
40+
41+
background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI2LjM4MjggMTUuNDY3MkMyNC40NTQyIDE3Ljg5NzIgMjIuMzcxMyAyMC42NzQzIDE4LjIwNTYgMjAuNjc0M0MxNC40ODQ3IDIwLjY3NDMgMTMuMDk4NSAxNy4zOTIzIDEzLjAwMSAxNC43MjYxQzEzLjgxNjMgMTYuNDUgMTUuNDEwMiAxNy44NDYxIDE3Ljg5NzEgMTcuNzgxNUMyMi42Nzk5IDE3LjYyNzIgMjUuOTU4NSAxMy4zMDcyIDI1Ljk1ODUgOS4zNzI5MkMyNS45NTg1IDQuNjY3MjIgMjIuNDQ4NSAxLjI3Mjk1IDE2LjM1NDIgMS4yNzI5NUMxMS45OTU3IDEuMjcyOTUgNi41OTU2OSAyLjkzMTUxIDMuMDQ3MTMgNS41NTQzNkMzLjAwODU2IDguMjU0MzUgNC41MTI4NCAxMS43NjQzIDUuMDUyODQgMTEuMzc4NkM4LjEyOTIgOS4xNjY3MyAxMC41Njg2IDcuNzQyODcgMTIuOTM0NyA3LjAyODkyQzkuNDMyMjYgMTAuOTM0NiAxLjAyODg4IDIwLjAwMzUgMCAyMS42QzAuMTE1NzE0IDIzLjA2NTcgMS45Mjg1NiAyNyAyLjgxNTcgMjdDMy4wODU3IDI3IDMuMzE3MTMgMjYuODQ1NyAzLjU4NzEzIDI2LjU3NTdDNi4xMjA1NiAyMy43MjkyIDguMTg1NzggMjEuMTc3MSAxMC4wMjI3IDE4LjcxNzJDMTAuMjgwNyAyMi4zMjI1IDEyLjA1MzUgMjYuNzMgMTcuMDA5OSAyNi43M0MyMS40NDU2IDI2LjczIDI1Ljg0MjggMjMuNTI4NiAyNy44NDg1IDE2LjMxNThDMjguMDc5OSAxNS40Mjg2IDI2Ljk5OTkgMTQuNzM0MyAyNi4zODI4IDE1LjQ2NzJaTTIxLjMyOTkgOS42NDI5MkMyMS4zMjk5IDExLjkxODYgMTkuMDkyOCAxMy4wMzcyIDE3LjA0ODUgMTMuMDM3MkMxNS45NTU4IDEzLjAzNzIgMTUuMTE2NCAxMi43NTAzIDE0LjQ1MjUgMTIuMzc3NEMxNS42NzQgMTAuNTI3OCAxNi44ODMxIDguNjMxMjUgMTguMTgyMiA2LjYwMDk1QzIwLjQ3MjggNi45ODg2NSAyMS4zMjk5IDguMjYxODcgMjEuMzI5OSA5LjY0MjkyWiIgZmlsbD0iI0ZGNDQzOCIvPgo8L3N2Zz4K");
42+
}
43+
44+
@keyframes nonstop-jump {
45+
0% {
46+
transform: translateY(0px);
47+
}
48+
50% {
49+
transform: translateY(6px);
50+
}
51+
100% {
52+
transform: translateY(0px);
53+
}
54+
}
55+
</style>
56+
57+
<% if(isDev){ %>
58+
<style>
59+
body #page-placeholder {
60+
display: none;
61+
}
62+
</style>
63+
<% } %>
2264
</head>
23-
<body>
65+
<body style="margin: 0">
2466
<div id="root"></div>
67+
<div id="page-placeholder">
68+
<div id="page-placeholder__icon"></div>
69+
</div>
2570
<script type="module" src="/%RI_INDEX_NAME%"></script>
2671
</body>
2772
</html>

redisinsight/ui/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@
1212
"scripts": {
1313
"dev": "vite dev",
1414
"build": "vite build",
15-
"stats": "npx vite-bundle-visualizer --open -o ./dist-stats.html --sourcemap"
15+
"stats": "NODE_OPTIONS=--max_old_space_size=8192 npx vite-bundle-visualizer --open -o ./dist-stats.html --sourcemap"
1616
}
1717
}

redisinsight/ui/src/App.tsx

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import React, { ReactElement } from 'react'
1+
import React, { ReactElement, useEffect } from 'react'
22
import { Provider, useSelector } from 'react-redux'
33
import { EuiPage, EuiPageBody } from '@elastic/eui'
44

55
import { Route, Switch } from 'react-router-dom'
66
import { store } from 'uiSrc/slices/store'
77
import { appInfoSelector } from 'uiSrc/slices/app/info'
8-
import { PagePlaceholder } from 'uiSrc/components'
8+
import { removePagePlaceholder } from 'uiSrc/utils'
99
import MonacoLanguages from 'uiSrc/components/monaco-laguages'
1010
import AppInit from 'uiSrc/components/init/AppInit'
1111
import { Pages, Theme } from './constants'
@@ -40,6 +40,11 @@ const AppWrapper = ({ children }: { children?: ReactElement[] }) => (
4040
)
4141
const App = ({ children }: { children?: ReactElement[] }) => {
4242
const { loading: serverLoading } = useSelector(appInfoSelector)
43+
useEffect(() => {
44+
if (!serverLoading) {
45+
removePagePlaceholder()
46+
}
47+
}, [serverLoading])
4348
return (
4449
<div className="main-container">
4550
<ThemeComponent />
@@ -54,18 +59,14 @@ const App = ({ children }: { children?: ReactElement[] }) => {
5459
path="*"
5560
render={() => (
5661
<>
57-
{ serverLoading
58-
? <PagePlaceholder />
59-
: (
60-
<EuiPage className="main">
61-
<GlobalDialogs />
62-
<GlobalSubscriptions />
63-
<NavigationMenu />
64-
<EuiPageBody component="main">
65-
<MainComponent />
66-
</EuiPageBody>
67-
</EuiPage>
68-
)}
62+
<EuiPage className="main">
63+
<GlobalDialogs />
64+
<GlobalSubscriptions />
65+
<NavigationMenu />
66+
<EuiPageBody component="main">
67+
<MainComponent />
68+
</EuiPageBody>
69+
</EuiPage>
6970
<Notifications />
7071
<Config />
7172
<ShortcutsFlyout />

redisinsight/ui/src/components/MonacoEnvironmentInitializer/MonacoEnvironmentInitializer.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { useEffect } from 'react'
22

33
import EditorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'
44
import JSONWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'
5-
import TypeScriptWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'
65
// https://github.com/remcohaszing/monaco-yaml?tab=readme-ov-file#why-doesnt-it-work-with-vite
76
import YamlWorker from './yaml.worker?worker'
87

@@ -17,9 +16,6 @@ const MonacoEnvironmentInitializer = () => {
1716
return new YamlWorker()
1817
case 'json':
1918
return new JSONWorker()
20-
case 'javascript':
21-
case 'typescript':
22-
return new TypeScriptWorker()
2319
default:
2420
throw new Error(`MonacoWorker: Unknown label ${label}`)
2521
}

redisinsight/ui/src/components/init/AppInit.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
STATUS_FAIL,
77
STATUS_SUCCESS,
88
} from 'uiSrc/slices/app/init'
9+
import { removePagePlaceholder } from 'uiSrc/utils'
910
import ConnectivityError from 'uiSrc/components/connectivity-error/ConnectivityError'
1011
import SuspenseLoader from 'uiSrc/components/main-router/components/SuspenseLoader'
1112

@@ -28,6 +29,7 @@ const AppInit = ({ children, onSuccess, onFail }: Props) => {
2829
}, [])
2930

3031
if (status === STATUS_FAIL) {
32+
removePagePlaceholder()
3133
return <ConnectivityError isLoading={false} onRetry={initApp} error="An unexpected server error has occurred. Please retry the request." />
3234
}
3335

0 commit comments

Comments
 (0)