Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@ updates:
directory: '/'
schedule:
interval: 'weekly'
ignore:
- dependency-name: '*'
update-types:
- 'version-update:semver-major'
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ const AppleSecretGenerator = () => {
const [error, setError] = useState('')

return (
<>
<div className="flex flex-col gap-3">
<Input
label="Account ID"
labelOptional="required"
Expand Down Expand Up @@ -186,7 +186,7 @@ const AppleSecretGenerator = () => {
/>
</>
)}
</>
</div>
)
}

Expand Down
1 change: 1 addition & 0 deletions apps/docs/public/humans.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Alaister Young
Alan De Los Santos
Aleksi Immonen
Alexander Korotkov
Ali Waseem
Amy Q
Andrew Valleteau
Andrey A
Expand Down
10 changes: 8 additions & 2 deletions apps/studio/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,15 @@ Project settings are managed outside of the Dashboard. If you use docker compose
# You'll need to be on Node v20
# in /studio

pnpmn install # install dependencies
mise studio # Supabase internal use: if you are working on the platform version of the Studio
## For external contributors
pnpm install # install dependencies
pnpm run dev # start dev server

## For internal contributors
## First clone the private supabase/infrastructure repo and follow instructions for setting up mise
mise studio # Run from supabase/infrastructure alongside `mise infra`

## For all
pnpm run test # run tests
pnpm run test -- --watch # run tests in watch mode
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ export const RegionSelector = ({
)

const availableRegions = getAvailableRegions(PROVIDERS[cloudProvider].id)
const regionsArray = Object.entries(availableRegions).map(([key, value]) => {
const regionsArray = Object.entries(availableRegions).map(([_key, value]) => {
return {
code: value.code,
name: value.displayName,
Expand All @@ -88,6 +88,11 @@ export const RegionSelector = ({
process.env.NEXT_PUBLIC_ENVIRONMENT === 'local' ||
process.env.NEXT_PUBLIC_ENVIRONMENT === 'staging'

const allSelectableRegions = [...smartRegions, ...regionOptions]
const selectedRegion = allSelectableRegions.find((region) => {
return !!region.name && region.name === field.value
})

if (isErrorAvailableRegions) {
return <AlertError subject="Error loading available regions" error={errorAvailableRegions} />
}
Expand Down Expand Up @@ -118,7 +123,20 @@ export const RegionSelector = ({
placeholder={
isLoading ? 'Loading available regions...' : 'Select a region for your project..'
}
/>
>
{field.value !== undefined && (
<div className="flex items-center gap-x-3">
{selectedRegion?.code && (
<img
alt="region icon"
className="w-5 rounded-sm"
src={`${BASE_PATH}/img/regions/${selectedRegion.code}.svg`}
/>
)}
<span className="text-foreground">{selectedRegion?.name ?? field.value}</span>
</div>
)}
</SelectValue_Shadcn_>
</SelectTrigger_Shadcn_>
<SelectContent_Shadcn_>
{smartRegionEnabled && (
Expand Down
9 changes: 7 additions & 2 deletions apps/studio/data/profile/profile-identities-query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,16 @@ import { auth } from 'lib/gotrue'
import { profileKeys } from './keys'

export async function getProfileIdentities() {
const { error, data } = await auth.getUser()
// getSession() uses a cached user object, which is almost never stale as the
// session refresh logic keeps it fresh. If there are claims of data not being
// fresh, it's because it was modified on another device / browser and the
// session hasn't been refreshed yet.
const { error, data } = await auth.getSession()

if (error) throw error
if (!data.session) throw new Error('Session not found with getSession()')

const { identities = [], new_email, email_change_sent_at } = data.user
const { identities = [], new_email, email_change_sent_at } = data.session.user
return { identities, new_email, email_change_sent_at }
}

Expand Down
2 changes: 1 addition & 1 deletion apps/www/pages/careers.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ const CareerPage = ({ jobs, placeholderJob, contributors }: CareersPageProps) =>
<SectionContainer className="!pb-0">
<div className="text-center">
<h2 className="text-2xl sm:text-3xl xl:text-4xl max-w-[300px] xl:max-w-none mx-auto tracking-[-1px]">
1,000+ Contributors building Supabase
1,500+ Contributors building Supabase
</h2>
<p className="text-foreground-light text-sm lg:text-base sm:max-w-lg lg:max-w-2xl mx-auto pt-3">
We're building a community of communities, bringing together developers from many
Expand Down
2 changes: 1 addition & 1 deletion packages/ui/src/lib/Layout/FormLayout/FormLayout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ export function FormLayout({

// console.log('error', error)

const renderError = (
const renderError = error && (
<p
data-state={error ? 'show' : 'hide'}
className={[__styles.error.base, __styles.error.size[size]].join(' ')}
Expand Down
Loading