Skip to content

Commit d4269a5

Browse files
authored
Merge pull request #401 from lightninglabs/home-screen
ui: add home screen and update sessions list
2 parents 3d9bdfc + f9c686e commit d4269a5

28 files changed

+616
-97
lines changed

app/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
"mobx": "6.3.2",
3838
"mobx-react-lite": "3.2.0",
3939
"mobx-utils": "6.0.4",
40+
"qrcode.react": "^3.1.0",
41+
"rc-dialog": "^8.9.0",
4042
"rc-select": "11.5.0",
4143
"rc-tooltip": "4.2.1",
4244
"react": "17.0.2",

app/src/App.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
// react-component component styles
1818
@import '../node_modules/rc-tooltip/assets/bootstrap_white.css';
19+
@import '../node_modules/rc-dialog/assets/index.css';
1920
@import './assets/styles/rc-select.scss';
2021

2122
// react-toastify styles

app/src/AppRoutes.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Layout } from 'components/layout';
44

55
const LazyAuthPage = React.lazy(() => import('components/auth/AuthPage'));
66
const LazyLoopPage = React.lazy(() => import('components/loop/LoopPage'));
7+
const LazyHomePage = React.lazy(() => import('components/home/HomePage'));
78
const LazyHistoryPage = React.lazy(() => import('components/history/HistoryPage'));
89
const LazyPoolPage = React.lazy(() => import('components/pool/PoolPage'));
910
const LazySettingsPage = React.lazy(() => import('components/settings/SettingsPage'));
@@ -14,6 +15,14 @@ const AppRoutes: React.FC = () => {
1415
<Routes>
1516
<Route path="/" element={<LazyAuthPage />} />
1617
<Route>
18+
<Route
19+
path="home"
20+
element={
21+
<Layout>
22+
<LazyHomePage />
23+
</Layout>
24+
}
25+
/>
1726
<Route
1827
path="loop"
1928
element={

app/src/__tests__/components/layout/Layout.spec.tsx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,31 +28,31 @@ describe('Layout component', () => {
2828
it('should navigate to the History page', () => {
2929
const { getByText, store } = render();
3030
expect(store.router.location.pathname).toBe('/loop');
31-
fireEvent.click(getByText('History'));
31+
fireEvent.click(getByText('Loop History'));
3232
expect(store.router.location.pathname).toBe('/history');
33-
expect(getByText('History').parentElement).toHaveClass('active');
33+
expect(getByText('Loop History').parentElement).toHaveClass('active');
3434
});
3535

3636
it('should navigate back to the Loop page', () => {
3737
const { getByText, store } = render();
3838
expect(store.router.location.pathname).toBe('/loop');
39-
fireEvent.click(getByText('History'));
39+
fireEvent.click(getByText('Loop History'));
4040
expect(store.router.location.pathname).toBe('/history');
41-
expect(getByText('History').parentElement).toHaveClass('active');
42-
fireEvent.click(getByText('Lightning Loop'));
41+
expect(getByText('Loop History').parentElement).toHaveClass('active');
42+
fireEvent.click(getByText('Loop'));
4343
expect(store.router.location.pathname).toBe('/loop');
44-
expect(getByText('Lightning Loop').parentElement).toHaveClass('active');
44+
expect(getByText('Loop').parentElement).toHaveClass('active');
4545
});
4646

4747
it('should navigate to the Pool page', () => {
4848
const { getByText, store } = render();
4949
expect(store.router.location.pathname).toBe('/loop');
50-
fireEvent.click(getByText('Lightning Pool'));
50+
fireEvent.click(getByText('Pool'));
5151
expect(store.router.location.pathname).toBe('/pool');
52-
expect(getByText('Lightning Pool').parentElement).toHaveClass('active');
53-
fireEvent.click(getByText('Lightning Loop'));
52+
expect(getByText('Pool').parentElement).toHaveClass('active');
53+
fireEvent.click(getByText('Loop'));
5454
expect(store.router.location.pathname).toBe('/loop');
55-
expect(getByText('Lightning Loop').parentElement).toHaveClass('active');
55+
expect(getByText('Loop').parentElement).toHaveClass('active');
5656
});
5757

5858
it('should navigate to the Settings page', () => {
@@ -61,8 +61,8 @@ describe('Layout component', () => {
6161
fireEvent.click(getByText('Settings'));
6262
expect(store.router.location.pathname).toBe('/settings');
6363
expect(getByText('Settings').parentElement).toHaveClass('active');
64-
fireEvent.click(getByText('Lightning Loop'));
64+
fireEvent.click(getByText('Loop'));
6565
expect(store.router.location.pathname).toBe('/loop');
66-
expect(getByText('Lightning Loop').parentElement).toHaveClass('active');
66+
expect(getByText('Loop').parentElement).toHaveClass('active');
6767
});
6868
});
Lines changed: 5 additions & 0 deletions
Loading

app/src/assets/icons/qr.svg

Lines changed: 13 additions & 0 deletions
Loading
35.4 KB
Loading
43.6 KB
Loading

app/src/assets/images/youtube.svg

Lines changed: 4 additions & 0 deletions
Loading

app/src/components/base/icons.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ import { ReactComponent as RefreshIcon } from 'assets/icons/refresh-cw.svg';
3030
import { ReactComponent as SettingsIcon } from 'assets/icons/settings.svg';
3131
import { ReactComponent as CancelIcon } from 'assets/icons/slash.svg';
3232
import { ReactComponent as UserPlusIcon } from 'assets/icons/user-plus.svg';
33+
import { ReactComponent as QRCodeIcon } from 'assets/icons/qr.svg';
34+
import { ReactComponent as BoltOutlinedIcon } from 'assets/icons/bolt-outlined.svg';
3335

3436
interface IconProps {
3537
size?: 'x-small' | 'small' | 'medium' | 'large';
@@ -119,3 +121,5 @@ export const Settings = Icon.withComponent(SettingsIcon);
119121
export const UserPlus = Icon.withComponent(UserPlusIcon);
120122
export const BarChart = Icon.withComponent(BarChartIcon);
121123
export const List = Icon.withComponent(ListIcon);
124+
export const QRCode = Icon.withComponent(QRCodeIcon);
125+
export const BoltOutlined = Icon.withComponent(BoltOutlinedIcon);

0 commit comments

Comments
 (0)