diff --git a/README.md b/README.md index 4c35921e1a5..4a6e2f223da 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ Our approach for client libraries is modular. Each sub-library is a standalone i - gotrue-java - - - + storage-java - diff --git a/apps/docs/components/Footer/DarkModeToggle.tsx b/apps/docs/components/Footer/DarkModeToggle.tsx deleted file mode 100644 index 04f9d225854..00000000000 --- a/apps/docs/components/Footer/DarkModeToggle.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { useTheme } from 'common/Providers' -import { IconSun, IconMoon } from '@supabase/ui' - -function DarkModeToggle() { - const { isDarkMode, toggleTheme } = useTheme() - - const toggleDarkMode = () => { - localStorage.setItem('supabaseDarkMode', (!isDarkMode).toString()) - toggleTheme() - - const key = localStorage.getItem('supabaseDarkMode') - document.documentElement.className = key === 'true' ? 'dark' : '' - } - - return ( -
- - - -
- ) -} - -export default DarkModeToggle diff --git a/apps/docs/components/Footer/index.tsx b/apps/docs/components/Footer/index.tsx deleted file mode 100644 index 01424c906f5..00000000000 --- a/apps/docs/components/Footer/index.tsx +++ /dev/null @@ -1,133 +0,0 @@ -import { Badge } from 'ui' -import Link from 'next/link' -import Image from 'next/image' -import FooterLinks from 'data/footer.json' -import DarkModeToggle from './DarkModeToggle' -import { useTheme } from 'common/Providers' -import * as supabaseLogoWordmarkDark from 'common/assets/images/supabase-logo-wordmark--dark.png' -import * as supabaseLogoWordmarkLight from 'common/assets/images/supabase-logo-wordmark--light.png' - -const Footer = () => { - const { isDarkMode } = useTheme() - - return ( - - ) -} - -export default Footer diff --git a/apps/docs/components/FooterHelpCallout.tsx b/apps/docs/components/FooterHelpCallout.tsx index 82f1a03c683..2eb6421dc4c 100644 --- a/apps/docs/components/FooterHelpCallout.tsx +++ b/apps/docs/components/FooterHelpCallout.tsx @@ -1,11 +1,13 @@ const FooterHelpCallout = () => { return ( -
-
Need some help?
-

- Not to worry, our specialist engineers are here to help. Submit a support ticket through the{' '} - Dashboard. -

+
+
+
Need some help?
+

+ Not to worry, our specialist engineers are here to help. Submit a support ticket through + the Dashboard. +

+
) } diff --git a/apps/docs/components/Navigation/Footer.tsx b/apps/docs/components/Navigation/Footer.tsx new file mode 100644 index 00000000000..3d85d66b3cb --- /dev/null +++ b/apps/docs/components/Navigation/Footer.tsx @@ -0,0 +1,56 @@ +import Image from 'next/image' +import Link from 'next/link' +import { Button, IconGitHub, IconTwitter } from '~/../../packages/ui' +import footerData from '~/data/footer.json' +import { useTheme } from 'common/Providers' + +const Footer = () => { + const { isDarkMode } = useTheme() + return ( +
+
+
+
+ Supabase 2022 + + {footerData.map((item) => ( + + {item.title} + + ))} +
+
+ + +
+
+
+ ) +} + +export default Footer diff --git a/apps/docs/components/Navigation/NavigationMenu/TopNavBarRef.tsx b/apps/docs/components/Navigation/NavigationMenu/TopNavBarRef.tsx index 6fcae17712d..d5a706d6cb2 100644 --- a/apps/docs/components/Navigation/NavigationMenu/TopNavBarRef.tsx +++ b/apps/docs/components/Navigation/NavigationMenu/TopNavBarRef.tsx @@ -2,19 +2,7 @@ import Image from 'next/image' import Link from 'next/link' import { useRouter } from 'next/router' import { FC, useEffect, useState } from 'react' -import { - Badge, - Button, - Dropdown, - IconCommand, - IconMenu, - IconMessageSquare, - IconMoon, - IconSearch, - IconSun, - Input, - Listbox, -} from 'ui' +import { Button, IconCommand, IconGitHub, IconMoon, IconSearch, IconSun } from 'ui' import { SearchButton } from '~/components/DocSearch' import { REFERENCES } from '~/components/Navigation/Navigation.constants' import { useTheme } from 'common/Providers' @@ -134,7 +122,7 @@ const TopNavBarRef: FC = () => { target="_blank" rel="noreferrer noopener" > - Main site + Supabase.com +
diff --git a/studio/components/interfaces/Organization/TeamSettings/TeamSettings.utils.ts b/studio/components/interfaces/Organization/TeamSettings/TeamSettings.utils.ts index 37ea52a0822..9651dacc86c 100644 --- a/studio/components/interfaces/Organization/TeamSettings/TeamSettings.utils.ts +++ b/studio/components/interfaces/Organization/TeamSettings/TeamSettings.utils.ts @@ -1,4 +1,4 @@ -import { Role } from 'types' +import { Member, Role } from 'types' import { checkPermissions } from 'hooks' import { PermissionAction } from '@supabase/shared-types/out/constants' @@ -23,3 +23,12 @@ export const getRolesManagementPermissions = ( return { rolesAddable, rolesRemovable } } + +export const hasMultipleOwners = (members: Member[] = [], roles: Role[] = []) => { + const membersWhoAreOwners = members.filter((member) => { + const [memberRoleId] = member.role_ids ?? [] + const role = roles.find((role: Role) => role.id === memberRoleId) + return role?.name === 'Owner' && !member.invited_at + }) + return membersWhoAreOwners.length > 1 +} diff --git a/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerRow.js b/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerRow.js index ebf400f1ea1..efc6aa48d98 100644 --- a/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerRow.js +++ b/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerRow.js @@ -307,6 +307,10 @@ const FileExplorerRow = ({ className={`flex items-center justify-end ${ view === STORAGE_VIEWS.LIST ? 'flex-grow' : 'w-[10%]' }`} + onClick={(event) => + // Stops click event from this div, to resolve an issue with menu item's click event triggering unexpected row select + event.stopPropagation() + } > {item.status === STORAGE_ROW_STATUS.LOADING ? (