Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
"eslint-config-prettier": "9.1.0",
"eslint-plugin-prettier": "4.2.1",
"husky": "8.0.3",
"jest": "27.5.1",
"lerna": "8.1.5",
"lint-staged": "15.2.7",
"ncp": "2.0.0",
Expand Down
4 changes: 3 additions & 1 deletion packages/neuron-ui/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ module.exports = {
'import/no-extraneous-dependencies': [
'error',
{
devDependencies: ['**/*.stories.*', 'src/setupTests.ts', '**/*.test.ts'],
devDependencies: ['**/*.stories.*', 'src/setupTests.ts', '**/*.test.ts', './vitest-setup.js'],
},
],
'import/extensions': [
Expand Down Expand Up @@ -96,5 +96,7 @@ module.exports = {
allowExpressions: true,
},
],
'@typescript-eslint/ban-types': 'off',
'import/no-unresolved': [2, { ignore: ['.svg'] }],
},
}
26 changes: 12 additions & 14 deletions packages/neuron-ui/.storybook/electron.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,17 @@ const sendSyncValues = {
'get-version': '0.103.1',
}

module.exports = {
ipcRenderer: {
sendSync(key) {
return sendSyncValues[key]
},
invoke() {
return Promise.resolve({})
},
on() {},
removeAllListeners() {},
export const ipcRenderer = {
sendSync(key) {
return sendSyncValues[key]
},
clipboard() {},
nativeImage() {},
shell() {},
desktopCapturer() {},
invoke() {
return Promise.resolve({})
},
on() {},
removeAllListeners() {},
}
export const clipboard = () => {}
export const nativeImage = () => {}
export const shell = () => {}
export const desktopCapturer = () => {}
35 changes: 18 additions & 17 deletions packages/neuron-ui/.storybook/main.ts
Original file line number Diff line number Diff line change
@@ -1,29 +1,30 @@
export default {
stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
import { StorybookConfig } from '@storybook/react-vite'
const { mergeConfig } = require('vite')
import path from 'path'

const config: StorybookConfig = {
stories: ['../src/**/*.stories.@(js|jsx|ts|tsx)'],
addons: [
'@storybook/addon-links',
'@storybook/addon-essentials',
'@storybook/addon-interactions',
'@storybook/preset-create-react-app',
'storybook-addon-react-router-v6',
],
framework: {
name: '@storybook/react-webpack5',
options: {},
framework: '@storybook/react-vite',
core: {
builder: '@storybook/builder-vite',
},
webpackFinal: config => {
config.resolve.fallback = {
fs: false,
crypto: false,
buffer: false,
}
config.resolve.alias = {
...config.resolve.alias,
electron: require.resolve('./electron'),
}
return config
async viteFinal(config) {
return mergeConfig(config, {
resolve: {
alias: { electron: path.resolve(__dirname, '../.storybook/electron') },
},
})
},
docs: {
autodocs: true,
},
staticDirs: ['../public'],
}

export default config
21 changes: 21 additions & 0 deletions packages/neuron-ui/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="stylesheet" href="/css/fonts.css" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="theme-color" content="#000000" />
<title>Neuron</title>
</head>

<body>
<navbar class="navbar"></navbar>
<div id="notification" class="notification"></div>
<main id="root" class="main-content"></main>
<div id="dialog" class="dialog"></div>
<script type="module" src="/src/index.tsx"></script>
</body>

</html>
44 changes: 26 additions & 18 deletions packages/neuron-ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@
"main": "./build",
"license": "MIT",
"scripts": {
"start": "cross-env DISABLE_ESLINT_PLUGIN=true GENERATE_SOURCEMAP=false react-app-rewired start",
"start": "cross-env DISABLE_ESLINT_PLUGIN=true vite",
"lint": "eslint --fix --ext .tsx,.ts,.js src",
"test": "react-app-rewired test --env=jsdom --watchAll=false",
"build": "cross-env DISABLE_ESLINT_PLUGIN=true GENERATE_SOURCEMAP=false react-app-rewired build",
"test": "vitest --environment=jsdom --run --watch=false",
"build": "cross-env DISABLE_ESLINT_PLUGIN=true tsc && vite build",
"clean": "npx rimraf build",
"precommit": "lint-staged",
"storybook": "storybook dev -p 9009 -s public",
"build-storybook": "storybook build -s public"
"storybook": "storybook dev -p 9009",
"build-storybook": "storybook build"
},
"publishConfig": {
"registry": "https://registry.npmjs.org/"
Expand Down Expand Up @@ -72,24 +72,27 @@
},
"devDependencies": {
"@babel/plugin-proposal-private-property-in-object": "7.21.11",
"@babel/preset-env": "7.26.9",
"@babel/preset-typescript": "7.23.3",
"@jest/globals": "27.5.1",
"@storybook/addon-actions": "7.6.6",
"@storybook/addon-essentials": "7.6.6",
"@storybook/addon-interactions": "7.6.6",
"@storybook/addon-links": "7.6.6",
"@storybook/addon-actions": "8.6.4",
"@storybook/addon-essentials": "8.6.4",
"@storybook/addon-interactions": "8.6.4",
"@storybook/addon-links": "8.6.4",
"@storybook/builder-vite": "8.6.4",
"@storybook/node-logger": "7.6.6",
"@storybook/preset-create-react-app": "7.6.6",
"@storybook/react": "7.6.6",
"@storybook/react-webpack5": "7.6.6",
"@storybook/react": "8.6.4",
"@storybook/react-vite": "8.6.4",
"@storybook/testing-library": "0.2.2",
"@testing-library/jest-dom": "6.6.3",
"@testing-library/react": "16.2.0",
"@types/enzyme": "3.10.18",
"@types/enzyme-adapter-react-16": "1.0.9",
"@types/node": "20.10.5",
"@types/react": "18.2.45",
"@types/react-dom": "18.2.18",
"@types/react-router-dom": "5.3.3",
"@types/styled-components": "5.1.34",
"@vitejs/plugin-react": "4.3.4",
"@wojtekmaj/enzyme-adapter-react-17": "0.8.0",
"babel-jest": "25.5.1",
"electron": "30.0.0",
Expand All @@ -100,12 +103,17 @@
"eslint-plugin-jsx-a11y": "6.7.1",
"eslint-plugin-react": "7.32.2",
"jest-styled-components": "7.2.0",
"react-app-rewired": "2.2.1",
"react-scripts": "5.0.1",
"react-test-renderer": "18.2.0",
"storybook": "7.6.6",
"jsdom": "26.0.0",
"postcss-preset-env": "10.1.5",
"storybook": "8.6.4",
"storybook-addon-react-router-v6": "2.0.10",
"webpack": "5.94.0"
"terser": "5.39.0",
"vite": "6.2.1",
"vite-plugin-commonjs": "0.10.4",
"vite-plugin-eslint": "1.8.1",
"vite-plugin-node-polyfills": "0.23.0",
"vite-plugin-svgr": "4.3.0",
"vitest": "3.0.8"
},
"resolutions": {
"react-i18next": "14.0.0"
Expand Down
27 changes: 0 additions & 27 deletions packages/neuron-ui/public/index.html

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import React from 'react'
import { useTranslation } from 'react-i18next'
import { getCompensatedTime, getCompensationPeriod, CONSTANTS, CompensationPeriod, uniformTimeFormatter } from 'utils'
import { getCompensatedTime, getCompensationPeriod, CompensationPeriod, uniformTimeFormatter } from 'utils'
import { WITHDRAW_EPOCHS } from 'utils/const'
import styles from './compensationPeriodTooltip.module.scss'

const { WITHDRAW_EPOCHS } = CONSTANTS

const HOUR = 3_600_000
const HOURS_PER_EPOCH = 4 * HOUR
const SECS_PER_DAY = 24 * HOUR
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/components/ErrorBoundary/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { handleViewError } from 'services/remote'

const handleError = (error: Error) => {
handleViewError(error.toString())
if (process.env.NODE_ENV !== 'development') {
if (import.meta.env.MODE !== 'development') {
window.location.reload()
}
return { hasError: true }
Expand Down
6 changes: 3 additions & 3 deletions packages/neuron-ui/src/components/GeneralSetting/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import { useSearchParams } from 'react-router-dom'
import Dialog from 'widgets/Dialog'
import LanguageDialog from 'components/LanguageDialog'
import AlertDialog from 'widgets/AlertDialog'
import { ReactComponent as VersionLogo } from 'widgets/Icons/VersionLogo.svg'
import { ReactComponent as ArrowNext } from 'widgets/Icons/ArrowNext.svg'
import { ReactComponent as Update } from 'widgets/Icons/Update.svg'
import VersionLogo from 'widgets/Icons/VersionLogo.svg?react'
import ArrowNext from 'widgets/Icons/ArrowNext.svg?react'
import Update from 'widgets/Icons/Update.svg?react'
import { cancelCheckUpdates, downloadUpdate, installUpdate, getVersion } from 'services/remote'
import { uniformTimeFormatter, bytesFormatter, clsx, wakeScreen, releaseWakeLock } from 'utils'
import Switch from 'widgets/Switch'
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/components/HardwareSign/success.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next'
import { useNavigate } from 'react-router-dom'
import { RoutePath } from 'utils'
import Button from 'widgets/Button'
import { ReactComponent as CompleteIcon } from 'widgets/Icons/Complete.svg'
import CompleteIcon from 'widgets/Icons/Complete.svg?react'

import styles from './hardwareSign.module.scss'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
@import '../../styles/mixin.scss';
@import '../../styles/theme.scss';
@import '../../styles/animation.scss';

$history-info-title-color: #999;
Expand Down Expand Up @@ -224,7 +223,7 @@ body {
}

.isReceive {
color: $main-color;
color: var(--primary-color);
}

.tokenName {
Expand Down
3 changes: 1 addition & 2 deletions packages/neuron-ui/src/components/History/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import FormattedTokenAmount, { FormattedCKBBalanceChange } from 'components/Form
import { useState as useGlobalState, useDispatch } from 'states'
import { exportTransactions } from 'services/remote'

import { ReactComponent as CKBAvatar } from 'widgets/Icons/Nervos.svg'
import CKBAvatar from 'widgets/Icons/Nervos.svg?react'

import { RoutePath, isMainnet as isMainnetUtil, uniformTimeFormatter } from 'utils'
import { onEnter } from 'utils/inputDevice'
Expand Down Expand Up @@ -237,7 +237,6 @@ const History = () => {
navigate(`${RoutePath.History}?pageNo=${pageNo}&keywords=${keywords}&sort=${key}&direction=${type}`)
}}
/>

<div className={styles.container}>
<div className={styles.pagination}>
<Pagination
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { useCallback, useEffect } from 'react'
import { useTranslation } from 'react-i18next'
import Button from 'widgets/Button'
import { ReactComponent as PendingIcon } from 'widgets/Icons/Pending.svg'
import PendingIcon from 'widgets/Icons/Pending.svg?react'
import { getDeviceExtendedPublickey } from 'services/remote'
import { isSuccessResponse } from 'utils'
import { ImportStep, ActionType } from './common'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next'
import Button from 'widgets/Button'
import { getDevices, getDeviceCkbAppVersion, connectDevice } from 'services/remote'
import { isSuccessResponse, errorFormatter, useDidMount } from 'utils'
import { ReactComponent as SuccessInfo } from 'widgets/Icons/SuccessInfo.svg'
import SuccessInfo from 'widgets/Icons/SuccessInfo.svg?react'
import { Error as ErrorIcon } from 'widgets/Icons/icon'
import Spinner from 'widgets/Spinner'
import {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React, { useCallback } from 'react'
import { useTranslation } from 'react-i18next'
import Button from 'widgets/Button'
import CopyZone from 'widgets/CopyZone'
import { ReactComponent as FailedInfo } from 'widgets/Icons/FailedInfo.svg'
import FailedInfo from 'widgets/Icons/FailedInfo.svg?react'
import { errorFormatter } from 'utils'
import { ActionType, ImportHardwareState, ImportStep } from './common'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { useCallback } from 'react'
import { useTranslation } from 'react-i18next'
import Button from 'widgets/Button'
import { ReactComponent as CompleteIcon } from 'widgets/Icons/Complete.svg'
import CompleteIcon from 'widgets/Icons/Complete.svg?react'
import { ImportStep, ActionType } from './common'

import styles from './findDevice.module.scss'
Expand Down
4 changes: 2 additions & 2 deletions packages/neuron-ui/src/components/LanguageDialog/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { useTranslation } from 'react-i18next'
import Dialog from 'widgets/Dialog'
import { setLocale } from 'services/remote'
import { CONSTANTS } from 'utils'
import { ReactComponent as Arrow } from 'widgets/Icons/Arrow.svg'
import { ReactComponent as Select } from 'widgets/Icons/Select.svg'
import Arrow from 'widgets/Icons/Arrow.svg?react'
import Select from 'widgets/Icons/Select.svg?react'
import Button from 'widgets/Button'

import styles from './languageDialog.module.scss'
Expand Down
4 changes: 2 additions & 2 deletions packages/neuron-ui/src/components/NetworkSetting/index.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { useEffect, useCallback, useState, useMemo } from 'react'
import { useTranslation } from 'react-i18next'
import { ReactComponent as EditNetwork } from 'widgets/Icons/Edit.svg'
import { ReactComponent as DeleteNetwork } from 'widgets/Icons/Delete.svg'
import EditNetwork from 'widgets/Icons/Edit.svg?react'
import DeleteNetwork from 'widgets/Icons/Delete.svg?react'
import NetworkEditorDialog from 'components/NetworkEditorDialog'
import AlertDialog from 'widgets/AlertDialog'
import Toast from 'widgets/Toast'
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/components/OfflineSign/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import Dialog from 'widgets/Dialog'
import AlertDialog from 'widgets/AlertDialog'
import { useState as useGlobalState } from 'states'
import { getCurrentWallet, OfflineSignStatus } from 'services/remote'
import { ReactComponent as HardWalletIcon } from 'widgets/Icons/HardWallet.svg'
import HardWalletIcon from 'widgets/Icons/HardWallet.svg?react'
import OfflineSignDialog from '../OfflineSignDialog'

import styles from './offlineSign.module.scss'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
@import '../../styles/mixin.scss';
@import '../../styles/theme.scss';
@import '../../styles/animation.scss';

.topContainer {
Expand Down
4 changes: 2 additions & 2 deletions packages/neuron-ui/src/components/PageContainer/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import {
} from 'utils'
import Alert from 'widgets/Alert'
import { Close } from 'widgets/Icons/icon'
import { ReactComponent as Sun } from 'widgets/Icons/Sun.svg'
import { ReactComponent as Moon } from 'widgets/Icons/Moon.svg'
import Sun from 'widgets/Icons/Sun.svg?react'
import Moon from 'widgets/Icons/Moon.svg?react'
import SyncStatusComponent from 'components/SyncStatus'
import { AppActions, useDispatch, useState as useGlobalState } from 'states'
import { openExternal } from 'services/remote'
Expand Down
Loading
Loading