Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat(Orgs): Organizations #5035

Open
wants to merge 33 commits into
base: dev
Choose a base branch
from
Open

Feat(Orgs): Organizations #5035

wants to merge 33 commits into from

Conversation

usame-algan
Copy link
Member

@usame-algan usame-algan commented Feb 19, 2025

jmealy and others added 25 commits February 13, 2025 14:40
* feat: add org layout with sidebar

* fix change organisations to organization

* feat: add links to orgs sidebar

* Update apps/web/src/features/organizations/components/OrgsSidebarNavigation/config.tsx

Co-authored-by: katspaugh <[email protected]>

* Update apps/web/src/features/organizations/components/OrgsSidebarNavigation/config.tsx

Co-authored-by: katspaugh <[email protected]>

* Update apps/web/src/pages/organizations/members.tsx

Co-authored-by: katspaugh <[email protected]>

* Update apps/web/src/pages/organizations/dashboard.tsx

Co-authored-by: katspaugh <[email protected]>

* refactor: remove unecessary getPathname function

---------

Co-authored-by: katspaugh <[email protected]>
* feat: add org dashboard signed out state

* feat: request auth cookie from backend on sign in button click

* resolve name conflict

* refactor: clean up css and comments

* link to orgs page from dashboard banner and modal

* feat: use dynamic route for org dashboard

* fix: remove dead links and allow credentials for CGW requests in rtk query

* extract getSignableMessage to utils

* catch failed SIWE attempts and log error
* feat: add org creation modal

* Add icon
* feat: Add org card

* fix: Generate deterministic color instead of using a fixed set
* feat: Implement orgs list and sign in state

* feat: Add no orgs state
* feat: Add empty org pages, adjust route generation

* Update apps/web/src/pages/organizations/[orgId]/safeAccounts.tsx

Co-authored-by: katspaugh <[email protected]>

* Update apps/web/src/pages/organizations/[orgId]/safeAccounts.tsx

Co-authored-by: katspaugh <[email protected]>

* fix: Extract regex

---------

Co-authored-by: katspaugh <[email protected]>
…hboard (#4975)

* feat: add safe list with empty state to the orgs dashboard

* feat: add members list placeholder
* feat: Create org when submitting the form

* fix: Handle error and loading state when submitting the form
* feat(Orgs): Add organization dashboard page signed out state  (#4908)

* feat: add org dashboard signed out state

* feat: request auth cookie from backend on sign in button click

* resolve name conflict

* refactor: clean up css and comments

* link to orgs page from dashboard banner and modal

* feat: use dynamic route for org dashboard

* fix: remove dead links and allow credentials for CGW requests in rtk query

* extract getSignableMessage to utils

* catch failed SIWE attempts and log error

* feat: Add org selector component to the orgs sidebar

* remove link from orgs card in the org selector dropdown

* refactor: use grid area for orgs card
* fix: Only add credentials header for authenticated routes

* fix: Add auth slice to store sign in state

* fix: Only set the sign in state if the signIn call succeeds

* fix: Remove TODO

* Add debug logs

* fix: Omit credentials for /auth endpoint requests
* fix: Only add credentials header for authenticated routes

* fix: Add auth slice to store sign in state

* fix: Fetch organizations when signed in

* fix: Include /auth/verify in the credentials route
* fix: Add org sidebar toggle

* fix: User correct icons for org sidebar and highlight current nav item
* fix: Update org creation info view

* fix: Remove padding

* fix: Update copy
* feat(Orgs): create add members modal

* revert unrelated changes

* revert unrelated changes

* feat: add description to role selections and resize icons
* feat: Add update org form

* fix: Add org deletion modal

* feat: Add delete org call

* fix: Disable form until name has changed, show notification
* fix: Update org dashboard empty view

* feat: Add disabled sidebar nav items

* fix: Remove gridArea and rename file

* fix: Update bank icon color
Copy link

github-actions bot commented Feb 19, 2025

Copy link

github-actions bot commented Feb 19, 2025

Coverage (35%)
File% Stmts% Branch% Funcs% LinesUncovered Line #s
All files35.232.6329.935.43 
src0000 
   react-app-env.d.ts0000 
src/app0000 
   +html.tsx0100009–31
   +not-found.tsx0100008–21
   _layout.tsx000022–117
   accounts-sheet.tsx0100003–4
   app-settings.tsx0100005
   get-started.tsx0100005
   index.tsx01000014
   networks-sheet.tsx0100003–4
   notifications-opt-in.tsx00008–34
   notifications.tsx0100005
   onboarding.tsx0100005
   pending-transactions.tsx0100007
src/app/(import-accounts)010000 
   _layout.tsx0100006–9
   form.tsx0100008–9
   index.tsx0100005
   signers.tsx0100008–9
src/app/(tabs)010000 
   _layout.tsx0100008–62
   index.tsx0100004–5
   settings.tsx0100004
src/app/(tabs)/transactions0000 
   _layout.tsx00007–26
src/app/(tabs)/transactions/(tabs)010000 
   _layout.tsx01000012–24
   index.tsx0100005
   messages.tsx01000010–34
src/app/import-signers010000 
   _layout.tsx0100005–7
   index.tsx01000014–57
   loading.tsx0100005
   private-key-error.tsx0100008–22
   private-key-success.tsx0100008–21
   private-key.tsx0100007–8
src/app/signers010000 
   _layout.tsx0100005–7
   index.tsx0100007–9
src/app/signers/[address]010000 
   index.tsx0100005
src/components/Alert10085.71100100 
   Alert.tsx10085.7110010057, 72
   index.ts0000 
src/components/Badge87.587.510087.5 
   Badge.tsx85.7187.510085.7149
   index.ts0000 
   theme.ts100100100100 
src/components/BlurredIdenticonBackground0000 
   BlurredIdenticonBackground.tsx000014–51
   index.tsx0000 
src/components/Camera0000 
   QrCamera.tsx00007–141
   index.ts0000 
src/components/ChainsDisplay10084.61100100 
   ChainsDisplay.tsx10084.6110010015–18
   index.ts0000 
src/components/Container10075100100 
   Container.tsx1007510010033
   index.ts0000 
src/components/CopyButton25100025 
   CopyButton.tsx251000256–10
   index.ts0000 
src/components/DataRow100100100100 
   DataRow.tsx100100100100 
   index.ts0000 
src/components/Dropdown0000 
   DropdownLabel.tsx000014–20
   index.ts0000 
   sheetComponents.tsx0100008–42
src/components/EthAddress10025100100 
   ETHAddress.tsx1002510010017
   index.ts0000 
src/components/Fiat100100100100 
   Fiat.tsx100100100100 
   index.ts0000 
src/components/FloatingContainer0000 
   FloatingContainer.tsx000016–49
   index.ts0000 
src/components/Identicon100100100100 
   Identicon.tsx100100100100 
   index.ts0000 
src/components/InnerShadow100100100100 
   InnerShadow.tsx100100100100 
   index.ts0000 
src/components/Logo100100100100 
   Logo.tsx100100100100 
   index.ts0000 
src/components/NetworkBadge33.33100033.33 
   NetworkBadge.tsx0100009–10
   index.ts0000 
   theme.ts100100100100 
src/components/OptIn0000 
   OptIn.tsx000025–80
   index.ts0000 
src/components/SafeBottomSheet0000 
   SafeBottomSheet.tsx000041–170
   index.ts0000 
src/components/SafeButton40033.3340 
   SafeButton.tsx40033.334067–68, 88
   index.ts0000 
src/components/SafeCard100100100100 
   SafeCard.tsx100100100100 
   index.ts0000 
src/components/SafeFontIcon87.585.7110087.5 
   SafeFontIcon.tsx87.585.7110087.528
   index.ts0000 
src/components/SafeInput100100100100 
   SafeInput.tsx100100100100 
   index.ts0000 
   styled.ts100100100100 
   theme.ts100100100100 
   utils.ts100100100100 
src/components/SafeListItem10070.58100100 
   SafeListItem.tsx10070.5810010074–88
   index.tsx0000 
src/components/SafeTab28.570030 
   SafeTab.tsx44.44100044.4414–27
   SafeTabBar.tsx9.09001018–45
   index.tsx0000 
   theme.ts100100100100 
   types.ts0000 
src/components/StatusBanners/PendingTransactions10050100100 
   PendingTransactions.tsx1005010010017
   index.tsx0000 
src/components/Tab0000 
   TabNameContext.tsx00003–10
src/components/Title100100100100 
   LargeHeaderTitle.tsx100100100100 
   NavBarTitle.tsx100100100100 
   SectionTitle.tsx100100100100 
   index.ts0000 
src/components/TxInfo23.84.545023.8 
   TxInfo.tsx23.84.545023.845–96, 100
   index.tsx0000 
src/components/navigation100100100100 
   TabBarIcon.tsx100100100100 
   index.ts0000 
src/components/transactions-list/Card/AccountCard10075100100 
   AccountCard.tsx1007510010052
   index.ts0000 
src/components/transactions-list/Card/AssetsCard100100100100 
   AssetsCard.tsx100100100100 
   index.tsx0000 
src/components/transactions-list/Card/SignersCard10080100100 
   SignersCard.tsx1008010010027
   index.ts0000 
src/components/transactions-list/Card/TxBatchCard100100100100 
   TxBatchCard.tsx100100100100 
   index.tsx0000 
src/components/transactions-list/Card/TxConflictingCard010000 
   TxConflictingCard.tsx01000013–31
   index.tsx0000 
src/components/transactions-list/Card/TxContractInteractionCard100100100100 
   TxContractInteractionCard.tsx100100100100 
   index.tsx0000 
src/components/transactions-list/Card/TxCreationCard100100100100 
   TxCreationCard.tsx100100100100 
   index.ts0000 
src/components/transactions-list/Card/TxGroupedCard90.9757590.9 
   TxGroupedCard.tsx90.9757590.957
   index.tsx0000 
src/components/transactions-list/Card/TxRejectionCard100100100100 
   TxRejectionCard.tsx100100100100 
   index.tsx0000 
src/components/transactions-list/Card/TxSafeAppCard100100100100 
   TxSafeAppCard.tsx100100100100 
   index.tsx0000 
src/components/transactions-list/Card/TxSettingsCard10050100100 
   TxSettingsCard.tsx1005010010017
   index.tsx0000 
src/components/transactions-list/Card/TxSwapCard100100100100 
   TxSwapCard.tsx100100100100 
   index.tsx0000 
src/components/transactions-list/Card/TxTokenCard88.8878.9410088.88 
   TxTokenCard.tsx88.8878.9410088.8840, 70
   index.tsx0000 
src/config47.3683.33047.36 
   constants.ts10083.3310010015
   ethers.ts01000010–38
src/context0000 
   NotificationsContext.tsx000012–32
src/features/AccountsSheet0000 
   AccountsSheet.container.tsx000010–23
   index.tsx0000 
src/features/AccountsSheet/AccountItem8068.7566.6678.57 
   AccountItem.tsx8068.7566.6678.5724, 41–50
   index.ts0000 
src/features/AccountsSheet/AccountItem/hooks47.05033.3350 
   useEditAccountItem.ts47.05033.335019–44
src/features/AccountsSheet/MyAccounts93.3310080100 
   MyAccounts.container.tsx100100100100 
   MyAccountsFooter.tsx8010050100 
   index.ts0000 
src/features/AccountsSheet/MyAccounts/hooks45.4510044.4450 
   useMyAccounts.ts100100100100 
   useMyAccountsSortable.ts01000011–26
src/features/Assets010000 
   Assets.container.tsx0100009–21
   index.tsx0000 
   styles.ts010010003
src/features/Assets/components/AssetsHeader0000 
   AssetsHeader.container.tsx0100006–13
   AssetsHeader.tsx000015
   index.tsx0000 
   styles.ts010010003
src/features/Assets/components/Balance0000 
   Balance.container.tsx000015–34
   Balance.tsx000021–32
   ChainItems.tsx000017–28
   index.tsx0000 
src/features/Assets/components/Fallback10075100100 
   Fallback.tsx1007510010012
   index.ts0000 
src/features/Assets/components/NFTs10081.81100100 
   NFTItem.tsx100501001008
   NFTs.container.tsx10088.8810010025
   index.tsx0000 
src/features/Assets/components/Navbar8.33008.33 
   Navbar.tsx000014–46
   index.tsx0000 
   theme.ts100100100100 
src/features/Assets/components/NoFunds100100100100 
   EmptyToken.tsx100100100100 
   NoFunds.tsx100100100100 
   index.ts0000 
src/features/Assets/components/Tokens10085.71100100 
   Tokens.container.tsx10085.7110010020
   index.tsx0000 
src/features/GetStarted010000 
   GetStarted.tsx0100009–18
   index.tsx0000 
src/features/ImportPrivateKey100100100100 
   ImportPrivateKey.container.tsx100100100100 
   index.ts0000 
src/features/ImportPrivateKey/components/ImportError010000 
   ImportError.tsx01000012–14
   index.ts0000 
src/features/ImportPrivateKey/components/ImportSuccess010000 
   ImportSuccess.tsx01000013–56
   index.ts0000 
src/features/ImportPrivateKey/components/LoadingImport0000 
   LoadingImport.container.tsx000011–76
   LoadingImport.tsx0100006
   index.ts0000 
src/features/ImportPrivateKey/hooks68507568 
   useImportPrivateKey.ts6850756819–20, 31–40, 45–46
src/features/ImportReadOnly0000 
   AddSignersForm.container.tsx000016–63
   ImportAccountForm.container.tsx000011–58
   NetworkBadge.container.tsx00009–15
   ScanQrAccount.container.tsx000010–68
   index.tsx0000 
src/features/ImportReadOnly/components0000 
   AddSignersFormView.tsx01000014–20
   AvailableNetworks.tsx0100006–11
   ImportAccountFormView.tsx000029–51
   ScanQrAccountView.tsx000016–17
   VerificationStatus.tsx000012–26
src/features/ImportReadOnly/helpers100100100100 
   safes.tsx100100100100 
src/features/NetworksSheet010000 
   NetworksSheet.container.tsx01000014–45
   index.tsx0000 
src/features/Notifications100100100100 
   Notifications.container.tsx100100100100 
   index.tsx0000 
src/features/Notifications/components100100100100 
   NotificationView.tsx100100100100 
src/features/Onboarding100100100100 
   Onboarding.container.tsx100100100100 
   index.ts0000 
src/features/Onboarding/components/OnboardingCarousel9688.8888.8896 
   CarouselFeedback.tsx100100100100 
   CarouselItem.tsx1008010010030
   OnboardingCarousel.tsx90.910083.3390.930
   index.ts0000 
   items.tsx100100100100 
src/features/Onboarding/components/OnboardingHeader100100100100 
   OnboardingHeader.tsx100100100100 
   index.ts0000 
src/features/Onboarding/components/ParticlesLogo100100100100 
   ParticlesLogo.tsx100100100100 
   index.ts0000 
src/features/PendingTx0000 
   PendingTx.container.tsx0100006–8
   index.tsx0000 
   utils.tsx000021–133
src/features/PendingTx/components/PendingTxList0000 
   PendingTxList.container.tsx000033–63
   index.ts0000 
src/features/Settings0000 
   Settings.container.tsx00006–13
   Settings.tsx000020–140
   index.tsx0000 
src/features/Settings/components/AppSettings0000 
   AppSettings.container.tsx00007–23
   AppSettings.tsx01000010–11
   index.ts0000 
src/features/Settings/components/IdenticonWithBadge10050100100 
   IdenticonWithBadge.tsx1005010010021–22
   index.ts0000 
src/features/Settings/components/Navbar0000 
   Navbar.tsx0100007–11
   SettingsButton.tsx0100006–15
   SettingsMenu.tsx000019–100
   index.ts0000 
src/features/Signers0000 
   Signers.container.tsx000010–26
   constants.ts010010003
   index.tsx0000 
src/features/Signers/components/SignersList0000 
   SignersList.tsx000020–66
   SignersListHeader.tsx000012
   SignersListItem.tsx000019–39
   index.ts0000 
src/features/Signers/components/SignersList/hooks010000 
   useSignersActions.ts0100005–32
src/features/Signers/hooks0000 
   useSignersGroupService.ts000010–32
src/features/TxHistory0000 
   TxHistory.container.tsx000010–36
   index.tsx0000 
   utils.tsx000018–58
src/features/TxHistory/components/TxHistoryList0000 
   TxHistoryList.tsx000018–33
   index.ts0000 
src/hooks0000 
   useNotifications.ts000023–61
src/hooks/services100100100100 
   useSafeOverviewService.ts100100100100 
src/hooks/useCopyAndDispatchToast100100100100 
   index.ts100100100100 
src/hooks/useInfiniteScroll75508073.33 
   index.ts0000 
   useInfiniteScroll.ts75508073.3330–35
src/hooks/useMakeSafesWithChainId010000 
   useMakeSafesWithChainId.ts0100007–12
src/hooks/usePendingTxs0000 
   index.ts000014–39
src/hooks/useSign79.315010078.57 
   index.ts0000 
   useSign.ts79.315010078.5744–45, 57, 69, 76, 81
src/hooks/useTransactionType91.6679.1610091.66 
   index.tsx91.6679.1610091.66116–124
src/navigation0000 
   NavigationGuardHOC.tsx000010–69
   useScrollableHeader.tsx000022–47
src/navigation/hooks0000 
   useModalStyle.ts000012–27
   utils.tsx0100006–17
src/services/exceptions88.8810010088.88 
   utils.ts88.8810010088.8814
src/services/notifications0000 
   FCMService.ts000012–62
   NotificationService.ts000028–280
src/store47.363.5721.7349.57 
   activeSafeSlice.ts6005055.5515–24
   constants.ts64.280064.28321–334
   index.ts91.665010091.6650
   myAccountsSlice.ts71.4210033.3366.6613–16
   notificationsSlice.ts39.130052.9418–36
   safesSlice.ts31.5710011.1131.2520–38, 47–48
   settingsSlice.ts71.4210033.3383.3321
   signersSlice.ts57.14100066.6613–15
   storage.ts7.14007.1412–67
   txHistorySlice.ts100100100100 
src/store/chains52.38252061.11 
   index.ts52.38252061.1110, 17, 25–26, 33–36
src/store/hooks85.715010085.71 
   activeSafe.ts8050100808
   index.ts100100100100 
src/theme100100100100 
   navigation.ts100100100100 
   tamagui.config.ts100100100100 
   tokens.ts100100100100 
src/theme/helpers10081.81100100 
   utils.ts10081.8110010037, 41
src/theme/hooks010000 
   useSafeAreaPaddingBottom.tsx0100004–6
src/theme/palettes100100100100 
   darkPalette.ts100100100100 
   lightPalette.ts100100100100 
src/theme/provider59.0927.776059.09 
   font.tsx90501009034
   safeTheme.tsx10037.510010019–34
   toastProvider.tsx000010–29
src/utils55.7631.558.4955.1 
   date.ts9666.6685.7110031, 35–39
   formatters.ts908010088.889
   gateway.ts100100100100 
   logger.ts000010–85
   transaction-guards.ts79.24606880.7651–57, 67, 99, 103, 117, 121
   transactions.tsx00004–29
src/utils/notifications010000 
   index.ts01000014–37

Copy link

github-actions bot commented Feb 19, 2025

📦 Next.js Bundle Analysis for @safe-global/web

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 1.07 MB (🟡 +79.5 KB)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

New Pages Added

The following pages were added to the bundle from the code in this PR:

Page Size (compressed) First Load
/organizations/[orgId] 12.41 KB 1.08 MB
/organizations/[orgId]/members 11.67 KB 1.08 MB
/organizations/[orgId]/safeAccounts 5.45 KB 1.07 MB
/organizations/[orgId]/settings 2.64 KB 1.07 MB
/welcome/organizations 13.76 KB 1.08 MB

Thirty-two Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/ 509 B (🟢 -1 B) 1.07 MB
/address-book 23.21 KB (🟡 +150 B) 1.09 MB
/apps 35.75 KB (🟡 +2.03 KB) 1.1 MB
/apps/custom 33.82 KB (🟡 +2.03 KB) 1.1 MB
/apps/open 55.36 KB (🟡 +1.75 KB) 1.12 MB
/balances 29.72 KB (🟡 +9 B) 1.1 MB
/balances/nfts 9.32 KB (🟢 -234 B) 1.08 MB
/bridge 2.55 KB (🟢 -4 B) 1.07 MB
/cookie 8.77 KB (🟡 +1 B) 1.08 MB
/home 66.59 KB (🟡 +7.33 KB) 1.13 MB
/licenses 2.46 KB (🟢 -1 B) 1.07 MB
/new-safe/advanced-create 26.26 KB (🟢 -201 B) 1.09 MB
/new-safe/create 25.4 KB (🟢 -198 B) 1.09 MB
/privacy 14.57 KB (🟡 +2 B) 1.08 MB
/settings 476 B (🟡 +1 B) 1.07 MB
/settings/data 1.79 KB (🟢 -1 B) 1.07 MB
/settings/modules 2.88 KB (🟢 -1.18 KB) 1.07 MB
/settings/notifications 7.49 KB (🟢 -13.82 KB) 1.07 MB
/settings/safe-apps 20.15 KB (🟡 +1.87 KB) 1.09 MB
/settings/security 2.34 KB (🟡 +2 B) 1.07 MB
/settings/setup 30.98 KB (🟡 +256 B) 1.1 MB
/share/safe-app 7.55 KB (🟢 -9 B) 1.07 MB
/stake 617 B (🟢 -2 B) 1.07 MB
/swap 763 B (🟡 +3 B) 1.07 MB
/terms 12.93 KB (🟡 +1 B) 1.08 MB
/transactions 99.46 KB (🟡 +2.88 KB) 1.16 MB
/transactions/history 99.42 KB (🟡 +2.88 KB) 1.16 MB
/transactions/messages 60.25 KB (🟡 +1.95 KB) 1.13 MB
/transactions/msg 56.5 KB (🟡 +1.95 KB) 1.12 MB
/transactions/queue 49.36 KB (🟡 +1.96 KB) 1.11 MB
/transactions/tx 48.72 KB (🟡 +1.96 KB) 1.11 MB
/welcome 6.93 KB (🟢 -2 B) 1.07 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

Copy link

github-actions bot commented Feb 19, 2025

Coverage report for apps/web

St.
Category Percentage Covered / Total
🟡 Statements
77.27% (-0.05% 🔻)
14233/18421
🔴 Branches
56.1% (-0.04% 🔻)
3571/6365
🟡 Functions
62.13% (-0.15% 🔻)
2123/3417
🟡 Lines
78.75% (-0.04% 🔻)
12852/16321
Show new covered files 🐣
St.
File Statements Branches Functions Lines
🟡
... / authSlice.ts
50% 0% 0% 62.5%
🟡
... / useIsOrganizationRoute.ts
50% 0% 0% 60%
Show files with reduced coverage 🔻
St.
File Statements Branches Functions Lines
🔴
... / routes.ts
33.33% (-66.67% 🔻)
100%
0% (-100% 🔻)
20% (-80% 🔻)
🔴
... / useIsSidebarRoute.ts
37.5% (-0.96% 🔻)
0% 0%
37.5% (-0.96% 🔻)
🟡
... / index.tsx
66.67% (-6.06% 🔻)
36.36% 33.33% 70%

Test suite run success

1838 tests passing in 251 suites.

Report generated by 🧪jest coverage report action from ed7f514

jmealy and others added 8 commits February 19, 2025 11:36
* Feat(Orgs): send invites and show invited members

* feat: add declined state for invite list

* use enum for member roles

* remove unused pathMatcher function

* fix: update invite member body type to reflect CGW change

* add ts ignore
* feat: Add Safe accounts form

* fix: Network icon alignment

* feat: Add search and update selected safes type

* fix: Add accounts on the empty safe accounts list view
* feat: Add safes manually for orgs

* refactor: Remove FilteredSafeList

* fix: Use chains.eth, disable Submit button if nothing is selected
* feat: handle accepting and rejecting pending invites

* fix: make accept and invite buttons smaller
* Feat(Orgs): display list of org members on the members route

* feat: add edit icon

* feat: always show members list and adjust empty members component text

* only show active members in the members list
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants