diff --git a/app/workspace/Dock/Native/index.js b/app/workspace/Dock/Native/index.js
deleted file mode 100644
index db5308ac3..000000000
--- a/app/workspace/Dock/Native/index.js
+++ /dev/null
@@ -1,158 +0,0 @@
-import React from 'react'
-import link from '../../../../resources/link'
-import svg from '../../../../resources/svg'
-import useStore from '../../../../resources/Hooks/useStore.js'
-import styled from 'styled-components'
-
-import { NativeControls } from './styled'
-
-const NavigationContainer = styled.div`
- position: absolute;
- top: 0px;
- right: 8px;
- bottom: 0px;
- z-index: 9999;
- display: flex;
-`
-const NavBack = styled.div`
- height: 26px;
- width: 26px;
- display: flex;
- justify-content: center;
- align-items: center;
- cursor: pointer;
- /* border-left: 1px solid var(--ghostZ); */
- margin: 8px 0px;
- border-radius: 7px;
- -webkit-app-region: no-drag;
- /* background: var(--ghostZ); */
- &:hover {
- background: var(--ghostB);
- box-shadow: 1px 1px 4px var(--ghostZ), -1px -1px 4px var(--ghostA);
- }
- * {
- pointer-events: none;
- }
-`
-
-const Navigation = () => {
- return (
-
- {
- link.send('workspace:nav:back', window.frameId)
- }}
- >
- {svg.chevronLeft(14)}
-
- {
- link.send('workspace:nav:forward', window.frameId)
- }}
- >
- {svg.chevronLeft(14)}
-
-
- )
-}
-
-const Title = () => {
- const handleClose = () => {
- link.send('frame:close')
- }
-
- const handleMin = () => {
- link.send('frame:min')
- }
-
- const handleMax = () => {
- link.send('frame:max')
- }
-
- const handleUnmax = () => {
- link.send('frame:unmax')
- }
-
- const handleFull = () => {
- link.send('frame:full')
- }
-
- const handleUnfull = () => {
- link.send('frame:unfull')
- }
-
- const platform = useStore('platform')
- const { fullscreen, maximized } = useStore('windows.workspaces', window.frameId)
-
- return (
-
-
- {platform === 'darwin' ? (
- <>
- {/* */}
-
- >
- ) : platform === 'win32' ? (
- <>
- {/* */}
-
-
- {maximized || fullscreen ? (
-
- ) : (
-
- )}
-
-
- >
- ) : (
- <>
- {/* */}
-
-
- {maximized || fullscreen ? (
-
- ) : (
-
- )}
-
-
- >
- )}
-
- )
-}
-
-export default Title
diff --git a/app/workspace/Dock/Native/style/index.styl b/app/workspace/Dock/Native/style/index.styl
deleted file mode 100644
index e271f7f6b..000000000
--- a/app/workspace/Dock/Native/style/index.styl
+++ /dev/null
@@ -1,158 +0,0 @@
-.nativeControls
- position absolute
- top 0
- left 0
- right 0
- height 32px
- z-index 20000000000000000
-
- .macGrab
- position absolute
- top 0
- left 0
- bottom 0
- right 0
- -webkit-app-region drag
-
- .macControls
- position absolute
- top 0
- left 0
- bottom 0
- width 74px
-
- .linuxGrab
- position absolute
- top 0
- right 104px
- bottom 0
- left 0
- -webkit-app-region drag
-
- .linuxControls
- position absolute
- top 0px
- right 8px
- bottom 0
- display flex
-
- .linuxControlsButton
- width 21px
- height 21px
- margin 6px 0px 8px 13px
- display flex
- justify-content center
- align-items center
- color white
- border-radius 11px
- background rgba(255, 255, 255, 0.05)
- flex 1
- flex-shrink 0
-
- .linuxControlsClose
- height 13px
- width 13px
-
- .linuxControlsMax
- height 13px
- width 13px
-
- .linuxControlsMin
- margin-top 5px
- height 13px
- width 13px
-
- svg
- position relative
- fill currentColor
- transform scale(0.7)
-
- *
- pointer-events none
-
- .linuxControlsButton:hover
- background rgba(255, 255, 255, 0.1)
-
- .windowsGrab
- position absolute
- top 0
- left 0px
- bottom 0
- right 136px
- -webkit-app-region drag
-
- .windowsControls
- position absolute
- top 1px
- right 1px
- bottom 0
- display flex
-
- .windowsControlsButton
- width 45px
- height 32px
- display flex
- justify-content center
- align-items center
- color white
- border-radius 4px
-
- svg
- position relative
- fill currentColor
-
- *
- pointer-events none
-
- .windowsControlsButton:hover
- background rgba(255, 255, 255, 0.02)
-
-.macTitle
- height 30px
- position absolute
- top 0
- left 0
- padding 0px 5px 0px 5px
- z-index 50000
- display flex
- justify-content center
- align-items center
-
- &:hover
- .titleClose
- background #fc615d
-
- .titleMin
- background #fdbd41
-
- .titleFull
- background #34c84a
-
- .macTitleButton
- height 30px
- width 30px
- position relative
- display flex
- justify-content center
- align-items center
-
- .titleClose
- width 12px
- height 12px
- background rgba(0, 0, 50, 0.15)
- border-radius 50%
- pointer-events none
-
- .titleMin
- width 12px
- height 12px
- background rgba(0, 0, 50, 0.15)
- border-radius 50%
- pointer-events none
-
- .titleFull
- width 12px
- height 12px
- background rgba(0, 0, 50, 0.15)
- border-radius 50%
- pointer-events none
diff --git a/app/workspace/Dock/index.js b/app/workspace/Dock/index.js
deleted file mode 100644
index b644e96e9..000000000
--- a/app/workspace/Dock/index.js
+++ /dev/null
@@ -1,197 +0,0 @@
-import styled from 'styled-components'
-
-import Native from './Native'
-import Account from './Account'
-
-import link from '../../../resources/link'
-import svg from '../../../resources/svg'
-import useStore from '../../../resources/Hooks/useStore'
-
-const Dock = styled.div`
- position: absolute;
- overflow: hidden;
- top: 8px;
- bottom: 8px;
- left: 8px;
- width: 300px;
- z-index: 9999;
- /* background: linear-gradient(135deg, var(--ghostA), var(--ghostAZ)); */
- /* border: 1px solid linear-gradient(135deg, red, var(--ghostAZ)); */
- background: var(--ghostAZ);
- border-radius: 8px;
- box-shadow: 0px 0px 8px var(--ghostY);
- text-align: center;
-`
-const DockBottom = styled.div`
- position: absolute;
- bottom: 8px;
- left: 0px;
- right: 0px;
-`
-
-const DockBody = styled.div`
- position: absolute;
- bottom: 8px;
- left: 0px;
- right: 0px;
- top: 46px;
-`
-
-const Options = styled.div`
- /* border-radius: 16px; */
- width: calc(100%);
- overflow: hidden;
- font-size: 13px;
- font-weight: 400;
-`
-const OptionButton = styled.div`
- height: 32px;
- margin: 0px 8px 8px 8px;
- padding: 8px;
- display: flex;
- justify-content: center;
- align-items: center;
- background: var(--ghostAZ);
- border-radius: 8px;
- box-shadow: 2px 2px 4px var(--ghostZ), -2px -2px 4px var(--ghostA);
- cursor: pointer;
- &:hover {
- background: var(--ghostB);
- }
-
- &:last-child {
- border-bottom: 1px solid transparent;
- }
-
- &:hover {
- background: var(--ghostA);
- }
-`
-
-export default () => {
- const frameState = useStore('windows.workspaces', frameId)
- const nav = frameState?.nav[0] || { space: 'command', data: {} }
- if (!nav || !nav.space) return null
-
- const { space } = nav
-
- return (
-
-
- {space === 'accounts' ? (
-
- {/* {'Accounts'}
*/}
-
- {
- link.send('workspace:nav', window.frameId, 'accounts', { view: 'manager' })
- }}
- >
- {'accounts'}
-
- {
- link.send('workspace:nav', window.frameId, 'accounts', { view: 'signers' })
- }}
- >
- {'signers'}
-
-
-
- ) : (
-
-
-
-
- {
- link.send('workspace:nav', window.frameId, 'accounts')
- }}
- >
- {'accounts'}
-
- {
- link.send('workspace:nav', window.frameId, 'chains')
- }}
- >
- {'chains'}
-
- {
- link.send('workspace:nav', window.frameId, 'dapps')
- }}
- >
- {'dapps'}
-
- {
- link.send('workspace:nav', window.frameId, 'settings')
- }}
- >
- {'settings'}
-
-
-
-
-
Inject Frame to any browser with our companion extension!
-
-
- link.send(
- 'tray:openExternal',
- 'https://chrome.google.com/webstore/detail/frame-alpha/ldcoohedfbjoobcadoglnnmmfbdlmmhf'
- )
- }
- >
- {svg.chrome(28)}
-
-
- link.send(
- 'tray:openExternal',
- 'https://addons.mozilla.org/en-US/firefox/addon/frame-extension'
- )
- }
- >
- {svg.firefox(28)}
-
- {/*
- {svg.safari(28)}
-
*/}
-
- {/*
Inject a connection with our browser extension!
*/}
-
- {
- link.send('tray:openExternal', 'https://feedback.frame.sh')
- }}
- >
- Request a Feature
-
- {
- link.send('tray:action', 'setOnboard', { showing: true })
- }}
- >
- Open Frame Tutorial
-
- link.send('tray:openExternal', 'https://discord.gg/UH7NGqY')}
- >
-
Need help?
-
Join our Discord!
-
-
-
- )}
-
- )
-}
diff --git a/app/workspace/Dock/Account/index.js b/app/workspace/Ribbon/Account/index.js
similarity index 62%
rename from app/workspace/Dock/Account/index.js
rename to app/workspace/Ribbon/Account/index.js
index 7a86c59fa..7d6dba96b 100644
--- a/app/workspace/Dock/Account/index.js
+++ b/app/workspace/Ribbon/Account/index.js
@@ -11,19 +11,18 @@ import useStore from '../../../../resources/Hooks/useStore'
import { icons, list } from '../../../../resources/svg/new'
const AccountWrap = styled.div`
- position: absolute;
- top: 0px;
- right: 8px;
- left: 8px;
- z-index: 9999;
- height: 64px;
+ height: 100%;
+ padding: 0px 20px;
display: flex;
justify-content: center;
align-items: center;
- background: var(--ghostAZ);
- border-radius: 8px;
- box-shadow: 2px 2px 4px var(--ghostZ), -2px -2px 4px var(--ghostA);
cursor: pointer;
+ -webkit-app-region: no-drag;
+ font-size: 14px;
+ font-family: 'Fira Code';
+ * {
+ pointer-events: none;
+ }
&:hover {
background: var(--ghostA);
}
@@ -48,12 +47,6 @@ export const HeaderWrap = styled.div`
display: flex;
justify-content: center;
align-items: center;
- /* border-bottom: 2px solid var(--ghostY); */
- /* background: var(--ghostZ05); */
- /* backdrop-filter: blur(16px); */
- background: var(--ghostAZ);
- border-radius: 24px;
- box-shadow: 2px 3px 9px 0px var(--ghostY);
`
const Account = () => {
@@ -67,38 +60,21 @@ const Account = () => {
link.send('workspace:nav', window.frameId, 'command')
}}
>
-
+
- {list[Math.floor(Math.random() * list.length)].icon(21)}
+ {list[Math.floor(Math.random() * list.length)].icon(16)}
-
{ensName}
+ {/*
{ensName}
*/}
{`${address.substr(0, 6)}...${address.substr(address.length - 4, address.length)}`}
diff --git a/app/workspace/Ribbon/Native/index.js b/app/workspace/Ribbon/Native/index.js
new file mode 100644
index 000000000..88a8fdefd
--- /dev/null
+++ b/app/workspace/Ribbon/Native/index.js
@@ -0,0 +1,153 @@
+import React from 'react'
+import link from '../../../../resources/link'
+import svg from '../../../../resources/svg'
+import useStore from '../../../../resources/Hooks/useStore.js'
+import styled from 'styled-components'
+import {
+ NativeControls,
+ LinuxControls,
+ LinuxControlsButton,
+ WindowsControls,
+ WindowsControlsButton,
+ MacControls,
+ MacTitleButton,
+ MacTitleClose,
+ MacTitleMin,
+ MacTitleFull
+} from './styled'
+
+const NavigationContainer = styled.div`
+ position: absolute;
+ top: 0px;
+ left: 8px;
+ bottom: 0px;
+ z-index: 9999;
+ display: flex;
+ background: red;
+`
+
+const NavBack = styled.div`
+ height: 26px;
+ width: 26px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+ margin: 8px 0px;
+ border-radius: 7px;
+ background: red;
+ -webkit-app-region: no-drag;
+ &:hover {
+ background: var(--ghostB);
+ box-shadow: 1px 1px 4px var(--ghostZ), -1px -1px 4px var(--ghostA);
+ }
+ * {
+ pointer-events: none;
+ }
+`
+
+const RotatedSpan = styled.span`
+ transform: rotate(180deg);
+`
+
+const Navigation = () => (
+
+ link.send('workspace:nav:back', window.frameId)}>{svg.chevronLeft(14)}
+ link.send('workspace:nav:forward', window.frameId)}>
+ {svg.chevronLeft(14)}
+
+
+)
+
+const handleClose = () => link.send('frame:close')
+const handleMin = () => link.send('frame:min')
+const handleMax = () => link.send('frame:max')
+const handleUnmax = () => link.send('frame:unmax')
+const handleFull = () => link.send('frame:full')
+const handleUnfull = () => link.send('frame:unfull')
+
+const Title = () => {
+ const platform = useStore('platform')
+ const { fullscreen, maximized, focused } = useStore('windows.workspaces', window.frameId)
+
+ return (
+
+ {/* */}
+ {platform === 'darwin' ? (
+
+
+
+
+
+
+
+
+ {maximized || fullscreen ? (
+
+ ) : (
+
+ )}
+
+
+ ) : platform === 'win32' ? (
+ <>
+
+
+
+
+ {maximized || fullscreen ? (
+
+
+
+ ) : (
+
+
+
+ )}
+
+
+
+
+ >
+ ) : (
+ <>
+
+
+
+
+ {maximized || fullscreen ? (
+
+
+
+ ) : (
+
+
+
+ )}
+
+
+
+
+ >
+ )}
+
+ )
+}
+
+export default Title
diff --git a/app/workspace/Dock/Native/styled/index.js b/app/workspace/Ribbon/Native/styled/index.js
similarity index 65%
rename from app/workspace/Dock/Native/styled/index.js
rename to app/workspace/Ribbon/Native/styled/index.js
index 816df92ab..a6fc6e877 100644
--- a/app/workspace/Dock/Native/styled/index.js
+++ b/app/workspace/Ribbon/Native/styled/index.js
@@ -1,38 +1,8 @@
import styled, { css } from 'styled-components'
export const NativeControls = styled.div`
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- height: 37px;
- /* border-bottom: 1px solid var(--ghostZ); */
-`
-
-export const MacGrab = styled.div`
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- -webkit-app-region: drag;
-`
-
-export const MacControls = styled.div`
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- width: 74px;
-`
-
-export const LinuxGrab = styled.div`
- position: absolute;
- top: 0;
- right: 104px;
- bottom: 0;
- left: 0;
- -webkit-app-region: drag;
+ height: 40px;
+ width: 80px;
`
export const LinuxControls = styled.div`
@@ -69,6 +39,12 @@ export const LinuxControlsButton = styled.div`
&:hover {
background: rgba(255, 255, 255, 0.1);
}
+
+ -webkit-app-region: no-drag;
+ cursor: pointer;
+ * {
+ pointer-events: none;
+ }
`
export const WindowsGrab = styled.div`
@@ -86,6 +62,8 @@ export const WindowsControls = styled.div`
right: 1px;
bottom: 0;
display: flex;
+ justify-content: center;
+ align-items: center;
`
export const WindowsControlsButton = styled.div`
@@ -96,6 +74,11 @@ export const WindowsControlsButton = styled.div`
align-items: center;
color: white;
border-radius: 4px;
+ -webkit-app-region: no-drag;
+ cursor: pointer;
+ * {
+ pointer-events: none;
+ }
svg {
position: relative;
@@ -111,61 +94,76 @@ export const WindowsControlsButton = styled.div`
}
`
-export const MacTitle = styled.div`
- height: 30px;
- position: absolute;
- top: 0;
- left: 0;
- padding: 0px 5px 0px 5px;
- z-index: 50000;
- display: flex;
- justify-content: center;
- align-items: center;
-
- &:hover {
- .titleClose {
- background: #fc615d;
- }
-
- .titleMin {
- background: #fdbd41;
- }
-
- .titleFull {
- background: #34c84a;
- }
- }
-`
-
export const MacTitleButton = styled.div`
- height: 30px;
- width: 30px;
+ height: 24px;
+ width: 24px;
position: relative;
display: flex;
justify-content: center;
align-items: center;
`
-export const TitleClose = styled.div`
+export const MacTitleClose = styled.div`
width: 12px;
height: 12px;
- background: rgba(0, 0, 50, 0.15);
+ background: rgba(124, 124, 124, 0.24);
border-radius: 50%;
- pointer-events: none;
+ cursor: pointer;
`
-export const TitleMin = styled.div`
+export const MacTitleMin = styled.div`
width: 12px;
height: 12px;
- background: rgba(0, 0, 50, 0.15);
+ background: rgba(124, 124, 124, 0.24);
border-radius: 50%;
- pointer-events: none;
+ cursor: pointer;
`
-export const TitleFull = styled.div`
+export const MacTitleFull = styled.div`
width: 12px;
height: 12px;
- background: rgba(0, 0, 50, 0.15);
+ background: rgba(124, 124, 124, 0.24);
border-radius: 50%;
- pointer-events: none;
+ cursor: pointer;
+
+ /* &:hover {
+ background: #34c84a;
+ } */
+`
+export const MacControls = styled.div`
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ -webkit-app-region: no-drag;
+
+ &:hover {
+ ${MacTitleClose} {
+ background: #fc615d;
+ }
+
+ ${MacTitleMin} {
+ background: #fdbd41;
+ }
+
+ ${MacTitleFull} {
+ background: #34c84a;
+ }
+ }
+
+ ${({ focused }) =>
+ focused &&
+ `
+ ${MacTitleClose} {
+ background: #fc615d;
+ }
+
+ ${MacTitleMin} {
+ background: #fdbd41;
+ }
+
+ ${MacTitleFull} {
+ background: #34c84a;
+ }
+ `}
`
diff --git a/app/workspace/Ribbon/index.js b/app/workspace/Ribbon/index.js
new file mode 100644
index 000000000..00147c0a0
--- /dev/null
+++ b/app/workspace/Ribbon/index.js
@@ -0,0 +1,224 @@
+import styled from 'styled-components'
+
+import Native from './Native'
+import Account from './Account'
+
+import link from '../../../resources/link'
+import svg from '../../../resources/svg'
+import useStore from '../../../resources/Hooks/useStore'
+
+const Ribbon = styled.div`
+ position: absolute;
+ top: 12px;
+ right: 12px;
+ left: 12px;
+ height: 36px;
+ z-index: 999999;
+ pointer-events: auto;
+ align-items: center;
+ text-align: center;
+ display: flex;
+ justify-content: space-between;
+ transform: translate3d(0, 0, 0);
+`
+
+const RibbonSection = styled.div`
+ height: 32px;
+ border-radius: 12px;
+ overflow: hidden;
+ z-index: 999999;
+ background: var(--ghostAZ);
+ opacity: 1;
+ border-bottom: 1px solid var(--ghostZ);
+ box-shadow: 0px 2px 8px -2px var(--ghostY), 0px -3px 6px -2px var(--ghostB);
+ display: flex;
+`
+
+const Options = styled.div`
+ font-size: 13px;
+ font-weight: 400;
+ display: flex;
+ height: 100%;
+`
+const OptionButton = styled.div`
+ width: 64px;
+ height: 100%;
+ border-left: 1px solid var(--ghostZ);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+ -webkit-app-region: no-drag;
+ * {
+ pointer-events: none;
+ }
+ &:hover {
+ background: var(--ghostA);
+ }
+`
+
+export const TopBackdrop = styled.div`
+ position: fixed;
+ top: 0px;
+ right: 0px;
+ bottom: 0px;
+ left: 0px;
+ height: 120px;
+ z-index: 99999;
+ backdrop-filter: blur(8px);
+ pointer-events: none;
+ mask-image: linear-gradient(to bottom, black 32px, transparent);
+ -webkit-mask-image: linear-gradient(to bottom, black 32px, transparent);
+
+ &:after {
+ content: '';
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ bottom: 0px;
+ left: 0px;
+ z-index: 1;
+ background: linear-gradient(90deg, var(--ghostZ) 5%, transparent 10%, transparent 90%, var(--ghostZ) 95%);
+ }
+`
+
+export const TopFade = styled.div`
+ position: fixed;
+ top: 0px;
+ right: 0px;
+ bottom: 0px;
+ left: 0px;
+ height: 120px;
+ z-index: 199999;
+ pointer-events: none;
+
+ /* background: red; */
+ background: linear-gradient(-180deg, var(--ghostY) 0%, transparent 100%);
+
+ &:after {
+ content: '';
+ position: absolute;
+ inset: 0px;
+ opacity: 0.8;
+ background: linear-gradient(-180deg, var(--ghostZ) 25%, transparent 100%);
+ }
+`
+
+const NavigationContainer = styled.div`
+ z-index: 9999;
+ display: flex;
+ height: 40px;
+ width: 80px;
+`
+const NavBack = styled.div`
+ height: 26px;
+ width: 26px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+ margin: 8px 0px;
+ border-radius: 7px;
+ -webkit-app-region: no-drag;
+ &:hover {
+ background: var(--ghostB);
+ box-shadow: 1px 1px 4px var(--ghostZ), -1px -1px 4px var(--ghostA);
+ }
+ * {
+ pointer-events: none;
+ }
+`
+
+const RibbonCenter = styled.div`
+ display: flex;
+ margin: 4px 0px 0px 0px;
+ > * {
+ margin: 0 4px;
+ }
+`
+
+const Navigation = () => {
+ return (
+
+ {
+ link.send('workspace:nav:back', window.frameId)
+ }}
+ >
+ {svg.chevronLeft(14)}
+
+ {
+ link.send('workspace:nav:forward', window.frameId)
+ }}
+ >
+ {svg.chevronLeft(14)}
+
+
+ )
+}
+
+export default () => {
+ const frameState = useStore('windows.workspaces', frameId)
+ const nav = frameState?.nav[0] || { space: 'command', data: {} }
+ if (!nav || !nav.space) return null
+
+ const { space } = nav
+
+ const platform = useStore('platform')
+
+ return (
+ <>
+
+
+
+
+
+ {
+ link.send('workspace:nav', window.frameId, 'accounts')
+ }}
+ >
+ {svg.chevron(24)}
+
+
+
+
+ {
+ link.send('workspace:nav', window.frameId, 'accounts')
+ }}
+ >
+ {svg.accounts(14)}
+
+ {
+ link.send('workspace:nav', window.frameId, 'chains')
+ }}
+ >
+ {svg.chain(16)}
+
+ {
+ link.send('workspace:nav', window.frameId, 'dapps')
+ }}
+ >
+ {svg.window(13)}
+
+ {
+ link.send('workspace:nav', window.frameId, 'settings')
+ }}
+ >
+ {svg.settings(14)}
+
+
+
+
+
+
+
+
+ >
+ )
+}
diff --git a/app/workspace/Spaces/Accounts/AccountManager/styled/index.js b/app/workspace/Spaces/Accounts/AccountManager/styled/index.js
index 62aae87ef..9e290bc44 100644
--- a/app/workspace/Spaces/Accounts/AccountManager/styled/index.js
+++ b/app/workspace/Spaces/Accounts/AccountManager/styled/index.js
@@ -37,8 +37,6 @@ export const cardDown = keyframes`
`
export const AccountManagerWrap = styled.div`
- position: absolute;
- inset: 8px;
z-index: 99999999999;
pointer-events: none;
/* animation: cardShow 400ms linear both; */
diff --git a/app/workspace/Spaces/Command/index.js b/app/workspace/Spaces/Command/index.js
index ce070537d..4e7f17c5e 100644
--- a/app/workspace/Spaces/Command/index.js
+++ b/app/workspace/Spaces/Command/index.js
@@ -6,13 +6,12 @@ import React from 'react'
import { Cluster, ClusterRow, ClusterValue } from '../../../../resources/Components/Cluster'
const Container = styled.div`
+ position: relative;
display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- height: 100%;
- width: 100%;
- /* background: var(--ghostA); */
+ flex-direction: row;
+ margin: auto auto;
+ width: 900px;
+ padding-left: 64px;
`
const MainButton = styled.div`
@@ -41,7 +40,7 @@ const DappRow = styled.div`
const DappIcon = styled.div`
width: 42px;
height: 42px;
- margin: 8px;
+ margin: 0px 0px 16px 0px;
background: var(--ghostAZ);
border-radius: 16px;
display: flex;
@@ -141,10 +140,60 @@ class Settings extends React.Component {
}
}
+const HomeLeft = styled.div`
+ position: absolute;
+ height: 100%;
+ width: 32px;
+ left: 0;
+`
+const HomeCenter = styled.div`
+ height: 400px;
+ width: 65%;
+ min-height: 100%;
+ border-radius: 16px;
+`
+const HomeRight = styled.div`
+ width: 35%;
+ min-height: 550px;
+ border-radius: 16px;
+ background: var(--ghostAZ);
+ margin-left: 16px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+`
+const CommandBar = styled.div`
+ height: 64px;
+ width: 100%;
+ border-radius: 16px;
+ background: var(--ghostAZ);
+ margin-bottom: 16px;
+`
+const Portfolio = styled.div`
+ height: 200px;
+ width: 100%;
+ border-radius: 16px;
+ background: var(--ghostAZ);
+ margin-bottom: 16px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+`
+
+const AssetList = styled.div`
+ height: 200px;
+ width: 100%;
+ border-radius: 16px;
+ background: var(--ghostAZ);
+ margin-bottom: 16px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+`
+
const Home = ({ data }) => (
- {/* {'current account'} */}
-
+
{
link.send('workspace:run', 'dapp', {}, ['send.frame.eth'])
@@ -155,14 +204,20 @@ const Home = ({ data }) => (
-
-
-
-
-
+
+
+
+
+ Value
+ Assets
+ Inventory
+
+
+ {'Account activity'}
+
)
diff --git a/app/workspace/Spaces/Views/index.js b/app/workspace/Spaces/Views/index.js
index bd4a70acc..374a7e29e 100644
--- a/app/workspace/Spaces/Views/index.js
+++ b/app/workspace/Spaces/Views/index.js
@@ -44,8 +44,8 @@ const Error = ({ isMainnetConnected }) => {
const ViewWrap = styled.div`
position: absolute;
- top: 8px;
- left: 0px;
+ top: 80px;
+ left: 8px;
right: 8px;
bottom: 8px;
z-index: 99999999;
@@ -91,7 +91,7 @@ const App = ({ id }) => {
return (
<>
-
+
{/*
{shouldDisplayError ? (
diff --git a/app/workspace/Workspace.js b/app/workspace/Workspace.js
index 9f224b869..327da58b8 100644
--- a/app/workspace/Workspace.js
+++ b/app/workspace/Workspace.js
@@ -14,7 +14,7 @@ import Dapps from './Spaces/Dapps'
import Views from './Spaces/Views'
import Onboard from '../onboard/App'
-import Dock from './Dock'
+import Ribbon from './Ribbon'
const Splash = styled.div`
position: fixed;
@@ -29,7 +29,7 @@ const Splash = styled.div`
const Main = styled.div`
position: absolute;
top: 0px;
- left: 316px;
+ left: 0px;
bottom: 0px;
right: 0px;
color: var(--outerspace);
@@ -46,17 +46,41 @@ const Space = ({ space, data }) => {
if (space === 'command') {
return
} else if (space === 'dapp') {
- return
+ return (
+
+
+
+ )
} else if (space === 'settings') {
- return
+ return (
+
+
+
+ )
} else if (space === 'onboard') {
- return
+ return (
+
+
+
+ )
} else if (space === 'chains') {
- return
+ return (
+
+
+
+ )
} else if (space === 'dapps') {
- return
+ return (
+
+
+
+ )
} else if (space === 'accounts') {
- return
+ return (
+
+
+
+ )
} else {
return (
@@ -74,9 +98,11 @@ const SpaceWrap = styled.div`
right: 0;
bottom: 0;
left: 0;
- padding: 32px 0px;
+ margin: auto auto;
+ padding: 128px 0px;
overflow-y: scroll;
overflow-x: hidden;
+ max-width: 900px;
`
const TopHandle = styled.div`
@@ -84,7 +110,7 @@ const TopHandle = styled.div`
top: 0px;
left: 0px;
right: 0px;
- height: 32px;
+ height: 64px;
z-index: 999999999; // Top z-index
-webkit-app-region: drag;
pointer-events: none;
@@ -99,11 +125,9 @@ const Workspace = (props) => {
-
+
-
-
-
+
diff --git a/app/workspace/dash/Chains/style/index.styl b/app/workspace/dash/Chains/style/index.styl
index 0ea8f965f..b8666bab6 100644
--- a/app/workspace/dash/Chains/style/index.styl
+++ b/app/workspace/dash/Chains/style/index.styl
@@ -1,5 +1,5 @@
.network
- margin 6px 6px 4px 6px
+ margin 6px 6px 32px 6px
position relative
box-shadow 0px 4px 8px var(--ghostY)
border-radius 27px
@@ -78,11 +78,6 @@
height 84px
.localSettings
- position absolute
- top 0px
- right 0px
- bottom 0px
- left 0px
display flex
justify-content center
flex-direction column
diff --git a/main/index.ts b/main/index.ts
index 2bcf3fe2c..95252801d 100644
--- a/main/index.ts
+++ b/main/index.ts
@@ -274,6 +274,14 @@ ipcMain.on('frame:unmax', (e) => {
windows.unmax(e)
})
+ipcMain.on('frame:full', (e) => {
+ windows.full(e)
+})
+
+ipcMain.on('frame:unfull', (e) => {
+ windows.unfull(e)
+})
+
dapps.add({
ens: 'send.frame.eth',
checkStatusRetryCount: 0,
diff --git a/main/windows/frames/frameInstances.ts b/main/windows/frames/frameInstances.ts
index 9e2c41c88..067c0e125 100644
--- a/main/windows/frames/frameInstances.ts
+++ b/main/windows/frames/frameInstances.ts
@@ -3,6 +3,7 @@ import path from 'path'
import { createWindow } from '../window'
import topRight from './topRight'
+import store from '../../store'
import { Workspace, Nav, View } from '../workspace/types'
@@ -36,8 +37,8 @@ export default {
y: 0,
width: 0,
height: 0,
- titleBarStyle: 'hidden',
- trafficLightPosition: { x: 20, y: 23 },
+ // titleBarStyle: 'hidden',
+ // trafficLightPosition: { x: 20, y: 23 },
icon: path.join(__dirname, './AppIcon.png')
})
@@ -75,6 +76,20 @@ export default {
// Show menu on macOS
// })
+ frameInstance.on('resize', () => {
+ Object.values(frameInstance.views || {}).forEach((viewInstance) => {
+ const { frameId } = frameInstance
+ // const { fullscreen } = store('windows.workspaces', frameId)
+ const { width, height } = frameInstance.getBounds()
+ viewInstance.setBounds({
+ x: 8,
+ y: 80 + 24,
+ width: width - 16,
+ height: height - 80 - 32 - 16
+ })
+ })
+ })
+
place(frameInstance)
return frameInstance
diff --git a/main/windows/frames/index.ts b/main/windows/frames/index.ts
index fa58d6b00..e1397cdef 100644
--- a/main/windows/frames/index.ts
+++ b/main/windows/frames/index.ts
@@ -46,10 +46,14 @@ export default class WorkspaceManager {
const frames = getFrames()
this.manageFrames(frames, inFocus)
this.manageViews(frames)
- // manageOverlays(frames)
+ // this.manageOverlays(frames)
})
}
+ manageOverlays(frames: Record, inFocus: string) {
+ // If there is an overlay, create a frame instance for it
+ }
+
manageFrames(frames: Record, inFocus: string) {
const frameIds = Object.keys(frames)
const instanceIds = Object.keys(this.frameInstances)
@@ -108,6 +112,11 @@ export default class WorkspaceManager {
frameInstance.views = frameInstance.views || {}
frameInstance.views[currentView]?.webContents?.focus()
}
+ store.updateFrame(frameId, { focused: true })
+ })
+
+ frameInstance.on('blur', () => {
+ store.updateFrame(frameId, { focused: false })
})
})
diff --git a/main/windows/frames/viewInstances.ts b/main/windows/frames/viewInstances.ts
index 3eef312c0..8c378ee9a 100644
--- a/main/windows/frames/viewInstances.ts
+++ b/main/windows/frames/viewInstances.ts
@@ -66,7 +66,7 @@ export default {
frameInstance.addBrowserView(viewInstance)
const dappBackground = store('main.dapps', view.dappId, 'colors', 'background')
- if (dappBackground) frameInstance.setBackgroundColor(dappBackground)
+ // if (dappBackground) frameInstance.setBackgroundColor(dappBackground)
viewInstance.webContents.setVisualZoomLevelLimits(1, 3)
@@ -130,13 +130,13 @@ export default {
// height: fullscreen ? height : height - 32
// })
viewInstance.setBounds({
- x: 316,
- y: 24,
- width: width - 316 - 8,
- height: height - 16 - 16 - 16
+ x: 8,
+ y: 80 + 24,
+ width: width - 16,
+ height: height - 80 - 32 - 16
})
// viewInstance.setBounds({ x: 73, y: 16, width: width - 73, height: height - 16 })
- viewInstance.setAutoResize({ width: true, height: true })
+ // viewInstance.setAutoResize({ width: true, height: true })
}
}
}
diff --git a/main/windows/index.ts b/main/windows/index.ts
index d3f523171..52e28f08a 100644
--- a/main/windows/index.ts
+++ b/main/windows/index.ts
@@ -620,6 +620,12 @@ export default {
close(e: IpcMainEvent) {
windowFromWebContents(e.sender).close()
},
+ full(e: IpcMainEvent) {
+ windowFromWebContents(e.sender).setFullScreen(true)
+ },
+ unfull(e: IpcMainEvent) {
+ windowFromWebContents(e.sender).setFullScreen(false)
+ },
max(e: IpcMainEvent) {
windowFromWebContents(e.sender).maximize()
},
diff --git a/main/windows/window.ts b/main/windows/window.ts
index e92b41584..4a2c4163b 100644
--- a/main/windows/window.ts
+++ b/main/windows/window.ts
@@ -36,7 +36,7 @@ export function createWindow(
acceptFirstMouse: true,
transparent: process.platform === 'darwin',
show: false,
- backgroundColor: COLORWAYS[store('main.colorway') as keyof typeof COLORWAYS]['background'],
+ // backgroundColor: COLORWAYS[store('main.colorway') as keyof typeof COLORWAYS]['background'],
skipTaskbar: process.platform !== 'linux',
webPreferences: {
...webPreferences,