Skip to content

Commit e83b984

Browse files
KrumTyKIvanowclaudedantovskapd-redis
authored
merge latest changes from "fe/feature/RI-7039-replace-eui" (#4782)
* RI-7226: fix RiTooltip when content is empty (#4742) * RI-7226: fix RiTooltip when content is empty * add unit tests for RiTooltip * electron upgraded from 33.* to 36.* (#4740) * Update Electron from 33.2.0 to 36.4.0 and related dependencies - Update electron from EOL version 33.2.0 to supported 36.4.0 - Update electron-builder from 24.13.3 to 26.0.12 - Update electron-updater from 6.3.9 to 6.6.2 - Add node-abi 4.12.0 for better Electron version support - Update yarn.lock files with new dependency versions 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * rolled back local changes * rolled back local changes * Update Node.js version from 22.11.0 to 22.12.0 for node-abi compatibility The [email protected] package requires Node.js >=22.12.0 but CI was using 22.11.0. This update ensures compatibility with the upgraded Electron dependencies. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Testing slightly different config to fix the resolutions after install * Fix electron-builder 26.0.12 configuration compatibility - Update Linux desktop configuration to use desktop.entry structure - Change Mac notarize from object to boolean (temporarily disabled) - Replace Windows publisherName with legalTrademarks - Remove electron-builder install-app-deps from postinstall script These changes address breaking changes in electron-builder 26.0.12. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Restore Mac notarization and disable native module rebuilding - Restore Mac notarization with teamId configuration (good security practice) - Add npmRebuild: false, nodeGypRebuild: false, buildDependenciesFromSource: false to disable native module rebuilding which fails due to ABI compatibility issues - This allows electron-builder to proceed without trying to rebuild native modules like keytar and sqlite3 that cause ABI detection errors with Electron 36 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Update Mac notarize configuration to boolean for electron-builder 26.0.12 In electron-builder 26.0.12, notarize must be a boolean value. The actual notarization configuration (teamId, etc.) is now handled via environment variables such as APPLE_TEAM_ID=UUK47G4BAZ instead of in the config file. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Reverting unneeded changes * Reverting unneeded changes * reverting yarn.lock in the api folder for testing --------- Co-authored-by: Claude <[email protected]> * RI-7212: replace EuiFormFieldset with FormFieldset (#4739) * RI-7212: replace EuiFormFieldset with FormFieldset * update display legend logic * add FormFieldset unit tests * RI-7226: fix RiTooltip when title/content is empty (#4747) * RI-7226: fix RiTooltip when title/content is empty * update test name * RI-7236 replace settings icon (#4745) * Remove settings icons * fix keys summary alignment * entirely remove settings svgs * RI-7211: replace eui form * replace EuiForm with form, replace eui/keys with uiSrc/constants/keys * RI-7208 replace eui collapsible nav group * add RICollapsibleNavGroup * replace EuiCollapsibleNavGroup * Remove unused PageBreadcrumbs component (#4746) * RI-7228 - key details - space is missing between Add / Cancel (#4761) * RI-7228 - key details - space is missing between Add / Cancel * RI-7228 - key details - space is missing between Add / Cancel * RI-7228 - key details - space is missing between Add / Cancel - returned classnames for test purposes * RI-7239 - Workbench results - the execution time has a broken layout (#4763) * RI-7030 - on workbench page, the text in the executing queries has broken styles and has blue square all over the screen (#4764) * RI-7210 replace eui file picker * add RiFilePicker.tsx * replace EuiFilePicker * Fe/feature/ri 7233 key details on web and full screen do not expand to the width of the container and do not have space between each other (#4762) * RI-7233 - key details on web and full screen do not expand to the width of the container and do not have space between each other - fixed spacing between name and ttl, and below the same row * RI-7233 - key details on web and full screen do not expand to the width of the container and do not have space between each other - fixed spacing between different input components * RI-7233 - key details on web and full screen do not expand to the width of the container and do not have space between each other - fixed styles to stretch from one end to the other * RI-7224 - in messages - ACK / CLAIM buttons need space between (#4769) * RI-7213: replace EuiImage with img tag (#4760) * replace Eui Image with RiImage * RI-7209 - Replace EuiFieldText with Input (#4775) * RI-7209 - Replace EuiFieldText with Input * Update redisinsight/ui/src/pages/home/components/database-manage-tags-modal/TagInputField.tsx Co-authored-by: Copilot <[email protected]> * Update redisinsight/ui/src/pages/browser/modules/key-details/components/stream-details/add-stream-entity/StreamEntryFields/StreamEntryFields.tsx Co-authored-by: Copilot <[email protected]> * Update redisinsight/ui/src/pages/browser/modules/key-details/components/rejson-details/components/add-item/AddItem.tsx Co-authored-by: Copilot <[email protected]> * Update redisinsight/ui/src/pages/browser/modules/key-details/components/rejson-details/components/add-item/AddItem.tsx Co-authored-by: Copilot <[email protected]> * Update redisinsight/ui/src/components/inline-item-editor/InlineItemEditor.tsx Co-authored-by: Copilot <[email protected]> * redisinsight/ui/src/components/multi-search/MultiSearch.tsx * RI-7209 - Replace EuiFieldText with Input - fixed tests (some?), added tooltip provider for the tooltip * RI-7209 - Replace EuiFieldText with Input - fixed tests * RI-7209 - Replace EuiFieldText with Input - fixed tests * RI-7209 - Replace EuiFieldText with Input - fixed tests * RI-7209 - Replace EuiFieldText with Input - fixed tests * Update redisinsight/ui/src/components/instance-header/components/instances-navigation-popover/InstancesNavigationPopover.tsx Co-authored-by: pd-redis <[email protected]> * Update redisinsight/ui/src/components/multi-search/MultiSearch.tsx Co-authored-by: pd-redis <[email protected]> * Update redisinsight/ui/src/components/input-field-sentinel/InputFieldSentinel.tsx Co-authored-by: pd-redis <[email protected]> * Update redisinsight/ui/src/pages/browser/components/create-redisearch-index/CreateRedisearchIndex.tsx Co-authored-by: pd-redis <[email protected]> * Update redisinsight/ui/src/pages/browser/modules/key-details/components/rejson-details/components/add-item/AddItem.tsx Co-authored-by: pd-redis <[email protected]> * Update redisinsight/ui/src/pages/browser/components/add-key/AddKeyCommonFields/AddKeyCommonFields.tsx Co-authored-by: pd-redis <[email protected]> * RI-7209 - Replace EuiFieldText with Input - fixed tests --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: pd-redis <[email protected]> * RI-7214: Replace EUI loading logo with custom bouncing logo component (#4768) * create loading logo component * add sizing to the component * RI-7235 new navigation (#4777) * add AppNavigation.tsx * add useNavigation.ts, move AppNavigation to InstancePageTemplate.tsx * RI-7207: Replace RUI Button Group with Redis Button Group (#4773) * replace the accordion component; change some styling to look nice with the accordion * replace button group component --------- Co-authored-by: Kristiyan Ivanov <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: dantovska <[email protected]> Co-authored-by: pd-redis <[email protected]> Co-authored-by: Copilot <[email protected]>
1 parent c9fbb00 commit e83b984

File tree

158 files changed

+3046
-2493
lines changed

Some content is hidden

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

158 files changed

+3046
-2493
lines changed

.github/actions/install-all-build-libs/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ runs:
3333
- name: Setup Node
3434
uses: actions/[email protected]
3535
with:
36-
node-version: '22.11.0'
36+
node-version: '22.12.0'
3737
# disable cache for windows
3838
# https://github.com/actions/setup-node/issues/975
3939
cache: ${{ runner.os != 'Windows' && 'yarn' || '' }}

electron-builder.json

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
"files": ["dist", "node_modules", "package.json"],
66
"artifactName": "Redis-Insight-${os}-${arch}.${ext}",
77
"compression": "normal",
8+
"npmRebuild": false,
9+
"nodeGypRebuild": false,
10+
"buildDependenciesFromSource": false,
811
"asarUnpack": ["node_modules/keytar", "node_modules/sqlite3"],
912
"protocols": [
1013
{
@@ -24,9 +27,7 @@
2427
"arch": ["x64", "arm64"]
2528
}
2629
],
27-
"notarize": {
28-
"teamId": "UUK47G4BAZ"
29-
},
30+
"notarize": true,
3031
"type": "distribution",
3132
"hardenedRuntime": true,
3233
"darkModeSupport": true,
@@ -86,7 +87,7 @@
8687
"target": ["nsis"],
8788
"artifactName": "Redis-Insight-${os}-installer.${ext}",
8889
"icon": "resources/icon.ico",
89-
"publisherName": ["Redis Inc.", "Redis Labs Inc."]
90+
"legalTrademarks": "Redis Inc., Redis Labs Inc."
9091
},
9192
"nsis": {
9293
"oneClick": false,
@@ -117,9 +118,11 @@
117118
"category": "Development",
118119
"artifactName": "Redis-Insight-${os}-${arch}.${ext}",
119120
"desktop": {
120-
"Name": "Redis Insight",
121-
"Type": "Application",
122-
"Comment": "Redis GUI by Redis Ltd"
121+
"entry": {
122+
"Name": "Redis Insight",
123+
"Type": "Application",
124+
"Comment": "Redis GUI by Redis Ltd"
125+
}
123126
}
124127
},
125128
"deb": {

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"package:mac": "yarn build:prod && electron-builder build --mac -p never",
4444
"package:mac:arm": "yarn build:prod && electron-builder build --mac --arm64 -p never",
4545
"package:linux": "yarn build:prod && electron-builder build --linux -p never",
46-
"postinstall": "patch-package && vite optimize -c ./redisinsight/ui/vite.config.mjs && skip-postinstall || (electron-builder install-app-deps && yarn-deduplicate yarn.lock)",
46+
"postinstall": "patch-package && vite optimize -c ./redisinsight/ui/vite.config.mjs && skip-postinstall || yarn-deduplicate yarn.lock",
4747
"test": "jest ./redisinsight/ui -w 1",
4848
"test:api": "yarn --cwd redisinsight/api test",
4949
"test:api:integration": "yarn --cwd redisinsight/api test:api",
@@ -158,8 +158,8 @@
158158
"csv-parser": "^3.0.0",
159159
"csv-stringify": "^6.4.0",
160160
"dotenv": "^16.4.5",
161-
"electron": "33.2.0",
162-
"electron-builder": "^24.13.3",
161+
"electron": "^36.4.0",
162+
"electron-builder": "^26.0.12",
163163
"electron-builder-notarize": "^1.5.2",
164164
"electron-debug": "^3.2.0",
165165
"electron-devtools-installer": "^3.2.0",
@@ -254,7 +254,7 @@
254254
"electron-context-menu": "^3.1.0",
255255
"electron-log": "^4.2.4",
256256
"electron-store": "^8.0.0",
257-
"electron-updater": "^6.3.9",
257+
"electron-updater": "^6.6.2",
258258
"file-saver": "^2.0.5",
259259
"formik": "^2.2.9",
260260
"fzstd": "^0.1.0",
@@ -272,7 +272,7 @@
272272
"monaco-editor": "^0.48.0",
273273
"monaco-yaml": "^5.1.1",
274274
"msgpackr": "^1.10.1",
275-
"node-abi": "^3.71.0",
275+
"node-abi": "^4.12.0",
276276
"pako": "^2.1.0",
277277
"php-serialize": "^4.0.2",
278278
"pickleparser": "^0.2.1",

redisinsight/ui/src/assets/img/sidebar/settings.svg

Lines changed: 0 additions & 32 deletions
This file was deleted.

redisinsight/ui/src/assets/img/sidebar/settings_active.svg

Lines changed: 0 additions & 32 deletions
This file was deleted.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import React, { ReactNode } from 'react'
2+
import cx from 'classnames'
3+
import {
4+
RiAccordion,
5+
RiAccordionProps,
6+
} from 'uiSrc/components/base/display/accordion/RiAccordion'
7+
8+
export type RICollapsibleNavGroupProps = Omit<
9+
RiAccordionProps,
10+
'collapsible' | 'content' | 'defaultOpen' | 'title' | 'label'
11+
> & {
12+
title: ReactNode
13+
children: ReactNode
14+
isCollapsible?: boolean
15+
className?: string
16+
initialIsOpen?: boolean
17+
onToggle?: (isOpen: boolean) => void
18+
forceState?: 'open' | 'closed'
19+
}
20+
export const RICollapsibleNavGroup = ({
21+
children,
22+
title,
23+
isCollapsible = true,
24+
className,
25+
initialIsOpen,
26+
onToggle,
27+
forceState,
28+
open,
29+
...rest
30+
}: RICollapsibleNavGroupProps) => (
31+
<RiAccordion
32+
{...rest}
33+
collapsible={isCollapsible}
34+
className={cx(className, 'RI-collapsible-nav-group')}
35+
defaultOpen={initialIsOpen}
36+
open={forceState === 'open' || open}
37+
label={title}
38+
onOpenChange={onToggle}
39+
>
40+
<div className="RI-collapsible-nav-group-content">{children}</div>
41+
</RiAccordion>
42+
)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import React from 'react'
2+
import { RiImageProps, StyledImage } from './image.styles'
3+
4+
const RiImage = ({ $size, src, alt, ...rest }: RiImageProps) => (
5+
<StyledImage src={src} alt={alt} $size={$size} {...rest} />
6+
)
7+
8+
export default RiImage
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { HTMLAttributes } from 'react'
2+
import styled, { css } from 'styled-components'
3+
4+
export const SIZES = ['s', 'm', 'l', 'xl', 'original', 'fullWidth'] as const
5+
6+
export const imageSizeStyles = {
7+
s: css`
8+
width: 100px;
9+
`,
10+
m: css`
11+
width: 200px;
12+
`,
13+
l: css`
14+
width: 360px;
15+
`,
16+
xl: css`
17+
width: 600px;
18+
`,
19+
original: css`
20+
width: auto;
21+
`,
22+
fullWidth: css`
23+
width: 100%;
24+
`,
25+
}
26+
27+
export type RiImageSize = (typeof SIZES)[number]
28+
29+
export interface RiImageProps extends HTMLAttributes<HTMLImageElement> {
30+
$size?: RiImageSize
31+
src: string
32+
alt: string
33+
}
34+
35+
export const StyledImage = styled.img<RiImageProps>`
36+
${({ $size = 'original' }) => imageSizeStyles[$size]}
37+
`
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
import Loader from './loader/Loader'
22
import ProgressBarLoader from './progress-bar/ProgressBarLoader'
3+
import RiImage from './image/RiImage'
4+
import RiLoadingLogo from './loading-logo/RiLoadingLogo'
35

4-
export { Loader, ProgressBarLoader }
6+
export { Loader, ProgressBarLoader, RiImage, RiLoadingLogo }
7+
export { RICollapsibleNavGroup } from './collapsible-nav-group/RICollapsibleNavGroup'
8+
9+
export type { RICollapsibleNavGroupProps } from './collapsible-nav-group/RICollapsibleNavGroup'
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import React, { HTMLAttributes } from 'react'
2+
import styled, { keyframes } from 'styled-components'
3+
4+
const bounce = keyframes`
5+
0%, 100% {
6+
transform: translateY(0);
7+
}
8+
9+
50% {
10+
transform: translateY(-15px);
11+
}
12+
`
13+
14+
export const SIZES = ['M', 'L', 'XL', 'XXL'] as const
15+
16+
export type RiLoadingLogoSize = (typeof SIZES)[number]
17+
18+
export interface RiLoadingLogoProps extends HTMLAttributes<HTMLImageElement> {
19+
src: string
20+
$size?: RiLoadingLogoSize
21+
$bounceSpeed?: number
22+
alt?: string
23+
}
24+
25+
const Wrapper = styled.div`
26+
display: inline-flex;
27+
align-items: center;
28+
justify-content: center;
29+
`
30+
31+
const BouncingLogo = styled.img<RiLoadingLogoProps>`
32+
width: ${({ theme, $size = 'XL' }) =>
33+
theme.components.iconButton.sizes[$size].width};
34+
animation: ${bounce} ${({ $bounceSpeed }) => $bounceSpeed}s ease-in-out
35+
infinite;
36+
`
37+
38+
const RiLoadingLogo = ({
39+
src,
40+
$size = 'XL',
41+
$bounceSpeed = 1,
42+
alt = 'Loading logo',
43+
}: RiLoadingLogoProps) => (
44+
<Wrapper>
45+
<BouncingLogo
46+
src={src}
47+
$size={$size}
48+
$bounceSpeed={$bounceSpeed}
49+
alt={alt}
50+
/>
51+
</Wrapper>
52+
)
53+
54+
export default RiLoadingLogo

0 commit comments

Comments
 (0)