Skip to content

Commit 4defe0e

Browse files
Ni-2alsakhaev
andauthored
feat(connected-accounts): implement linking/unlinking NEAR accounts with social networks (#57)
* Revert "feat: open the overlay by left-clicking on the extension icon (DAP-4805)" This reverts commit 5470dbd. * feat: add skeleton of the side panel (DAP-4813) * refactor: extract engine from NotificationProvider * refactor: remove unused imports * Merge branch 'develop' into dap-4813 * feat: mocked side panel * fix: `dev:extension` script * refactor: move app switchers to shared components * feat: add Connect Module for CA page (DAP-4844) * refactor: extract engine hooks to a separate package * refactor: declarative way to initialize parser configs * fix: colors; refactor: use css variables * feat: synchronize wallet state * fix: notifications are empty * feat: use data from a site context, subscribe for changes * refactor: upgrade react router dom * fix: overlay doesn't work in gateway * refactor: remove unused imports * refactor: extract all dependant calls to context * feat: sync context tree with side panel * refactor: replace selectedMutation with selectedMutationId * feat: switch mutation from side panel * refactor: extract favorite mutations to react-engine * refactor: extract preferred source to react-engine * refactor: move mutation editor modal to the side panel * refactor: rename hook * refactor: move overlay open state inside * refactor: move networkId to wallet provider * refactor: move core inside engine * refactor: simplify overlay drawer * feat: remove overlay from extension * refactor: use wildcard export * feat: extract notifications to the separate page * fix: mutation editor not found * refactor: reuse existing mutation editor * refactor: get rid of mutations with settings * fix: broken styles in mutations list * fix: broken connection between cs and sp * refactor: memoize mutations * fix: parser is reattached after mutation switching * refactor: don't load all mutations in the engine * refactor: reuse use state hook * fix: window focus refetch * fix: empty mutations list * feat: move apps to the sidepanel * refactor: replace `/system/` route with `/` * fix: near social doesn't work * refactor: extract modalContainerRef into context * fix: pr review modal doesn't show * fix: mutation editor doesn't fit into overlay * refactor: remove unused switchMutationVersion from engine * refactor: extract setPreferredSource from context * refactor: remove unused props * refactor: remove unused mutationApps from the context * docs: add todos * feat: implement `connect` and `disconnect` functionality for CA (DAP-4845, DAP-4846, DAP-4847) * feat: keep two engines in sync * feat: close sidepanel via uber sausage * fix: status update * refactor: use `social account` in Connect Module * fix: broken side panel * fix: deleted mutation from preferred source is not loaded * fix: remove from recently used doesn't work * fix: mutation editor modal is empty * feat: add error messages and the condition check for the active account * refactor: extract all engine listeners to one hook * refactor: return undefined if there is no query data * fix: sync mutation and apps state * feat: open wallet in window popup * feat: exclude wallet urls * fix: sidepanel reacts on tabs in another windows * fix: prev is undefined error * fix: prev is undefined error * feat: no connection message * feat: two way state sync * fix: inconsistent state after forking * fix: cannot remove mutation from recent * ci: fix invalid type on * fix: three dots popups * chore: update pnpm lock * refactor: extract socialNetworkConnectionCondition from the context * refactor: extract useGetVerificationRequest * refactor: extract useGetPendingRequests * refactor: extract useMinStakeAmount * refactor: rename hook * refactor: extract useChangeCAStatus and useGetCAPairs * refactor: extract useGetCANet * refactor: extract whole ca context * fix: path in import * fix: after connecting the wallet, a message about the connection conditions not being met is not displayed (DAP-4861) * feat: change `RequestStatus` options; add example for CA connection condition * refactor: use serialized context tree * fix: useOutside closes popup immediately * fix: tree is not synced * fix: message when there are no connected accounts yet; refactor: add comments about hardcode in CA --------- Co-authored-by: Alexander Sakhaev <alsakhaev@gmail.com>
1 parent c9dfa2a commit 4defe0e

Some content is hidden

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

42 files changed

+1385
-999
lines changed

apps/extension/src/sidepanel/use-current-tab.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@ export const useCurrentTab = (windowId: number) => {
4040

4141
setEventEmitter(eventEmitter)
4242

43+
let currentTree: IContextNode | null = null
44+
4345
portRef.current.onMessage.addListener((msg: any) => {
4446
// ToDo: handle childContextRemoved, contextChanged
4547
if (msg.type === 'contextTree') {
46-
setTree(PureContextNode.fromTransferable(msg.data))
48+
currentTree = PureContextNode.fromTransferable(msg.data)
49+
setTree(currentTree)
4750
} else if (msg.type === 'childContextAdded') {
4851
function updateTree(node: TransferableContextNode): IContextNode | null {
49-
if (!node.parentNode) return tree
52+
if (!node.parentNode) return currentTree
5053

5154
const clonedParentNode = updateTree(node.parentNode)
5255

libs/backend/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export {
4747
NearNetworks,
4848
ChainTypes,
4949
TConnectedAccountsVerificationRequestInfo,
50+
ConnectedAccountsRequestStatus,
5051
} from './services/connected-accounts/types'
5152
export { ConnectedAccountsService } from './services/connected-accounts/connected-accounts.service'
5253

libs/backend/src/services/connected-accounts/connected-accounts.service.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ export class ConnectedAccountsService {
162162

163163
const receiverOrigin =
164164
receiver.chain === ChainTypes.ETHEREUM_SEPOLIA || receiver.chain === ChainTypes.ETHEREUM_XDAI
165-
? 'ethereum'
165+
? 'ethereum' // ToDo: hardcoded
166166
: receiver.chain
167167
const receiverConnectedAccountUser: IConnectedAccountUser = {
168168
name: receiver.account,
@@ -186,7 +186,7 @@ export class ConnectedAccountsService {
186186
accountActive: accStatus,
187187
},
188188
statusName: ConnectedAccountsPairStatus.Processing,
189-
statusMessage: 'Processing',
189+
statusMessage: 'Processing', // ToDo: use enum
190190
closeness: 1,
191191
pendingRequestId,
192192
})
@@ -223,7 +223,7 @@ export class ConnectedAccountsService {
223223
accountActive: ca.status.isMain,
224224
},
225225
statusName: ConnectedAccountsPairStatus.Connected,
226-
statusMessage: 'Connected',
226+
statusMessage: 'Connected', // ToDo: use enum
227227
closeness: i + 1,
228228
})
229229
})
@@ -266,8 +266,8 @@ export class ConnectedAccountsService {
266266
statusName: ConnectedAccountsPairStatus.Error,
267267
statusMessage:
268268
newPairsLengthBeforeFilter === newPairs.length
269-
? 'Connection rejected'
270-
: 'Disconnection rejected',
269+
? 'Connection rejected' // ToDo: use enum ???
270+
: 'Disconnection rejected', // ToDo: use enum ???
271271
closeness: 1,
272272
})
273273
}

libs/engine/src/app/app.tsx

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import React, { FC, Fragment, ReactNode, useRef, useState } from 'react'
55
import { ContextHighlighter } from './components/context-highlighter'
66
import { ContextManager } from './components/context-manager'
77
import { ContextPicker } from './components/context-picker'
8-
import { ConnectedAccountsProvider } from './contexts/connected-accounts-context'
98
import { DevProvider } from './contexts/dev-context'
109
import { HighlighterProvider } from './contexts/highlighter-context'
1110
import { ModalProvider } from './contexts/modal-context'
@@ -51,16 +50,14 @@ export const App: FC<{
5150
defaultMutationId={defaultMutationId}
5251
modalApi={modalApi}
5352
>
54-
<ConnectedAccountsProvider>
55-
<ViewportProvider stylesheetSrc={config.bosElementStyleSrc}>
56-
<ModalProvider onModalApiReady={setModalApi}>
57-
<ContextPicker />
58-
<ContextManager />
59-
<ContextHighlighter />
60-
</ModalProvider>
61-
</ViewportProvider>
62-
<Fragment>{children}</Fragment>
63-
</ConnectedAccountsProvider>
53+
<ViewportProvider stylesheetSrc={config.bosElementStyleSrc}>
54+
<ModalProvider onModalApiReady={setModalApi}>
55+
<ContextPicker />
56+
<ContextManager />
57+
<ContextHighlighter />
58+
</ModalProvider>
59+
</ViewportProvider>
60+
<Fragment>{children}</Fragment>
6461
</MutableWebProvider>
6562
</HighlighterProvider>
6663
</PickerProvider>

libs/engine/src/app/contexts/connected-accounts-context/connected-accounts-context.tsx

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

libs/engine/src/app/contexts/connected-accounts-context/connected-accounts-provider.tsx

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

libs/engine/src/app/contexts/connected-accounts-context/index.ts

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

libs/engine/src/app/contexts/connected-accounts-context/use-change-ca-status.ts

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

libs/engine/src/app/contexts/connected-accounts-context/use-connected-accounts.ts

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

libs/engine/src/app/contexts/connected-accounts-context/use-get-ca-net.ts

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

0 commit comments

Comments
 (0)