Files
supabase/apps/studio/pages
Raminder SinghandJoshen Lim ca7ba8f564 feat: improve stripe sync engine page behaviour (#43186)
* Moved sync status admonition to the settings page.
* The **Install integration** and **Uninstall integration** buttons now
show loading states during installation/uninstallation.
* Made the content of the `StripeSyncChangesCard` dynamic based on the
installation status.
* Fixed a bug in which the comment on the stripe schema was not parsed
correctly.

Screenshots for each state:

**Not installed**

<img width="897" height="884" alt="image"
src="https://github.com/user-attachments/assets/be567059-1deb-47d1-86df-af9f1c3b4fde"
/>

**Installing**

<img width="897" height="884" alt="image"
src="https://github.com/user-attachments/assets/664af71e-9407-4236-b4e5-1e7170a2f31f"
/>


**Install Error**

<img width="897" height="933" alt="image"
src="https://github.com/user-attachments/assets/0d6e4fbd-107a-4f95-8a5e-6bd1a1d6a1be"
/>


**Installed**

<img width="897" height="901" alt="image"
src="https://github.com/user-attachments/assets/e686e050-b3d2-42d0-bd3c-11d81540433a"
/>


**Uninstalling**

<img width="897" height="901" alt="image"
src="https://github.com/user-attachments/assets/7cd90d1c-ff83-4e7d-884e-4e340a1dcc75"
/>


**Uninstall Error**

<img width="897" height="938" alt="image"
src="https://github.com/user-attachments/assets/de0c1bc8-11c5-4c3f-a0ca-00b1f9e32ed3"
/>

**Settings Page (Sync Done)**

<img width="897" height="572" alt="image"
src="https://github.com/user-attachments/assets/ec5dd2a3-d183-42e1-8953-13bcf70082f5"
/>

**Settings Page (Sync in Progress)**

<img width="897" height="572" alt="image"
src="https://github.com/user-attachments/assets/7400c479-3e4f-4490-8857-414a93ebdc51"
/>


The idea behind these changes is that in future:

* We allow users to configure sync interval from the settings page.
* The overview page is mainly for the install/uninstall behaviour only,
rest everything goes to the settings page.
* We can show more granular progress during install/uninstall by showing
what is being installed/uninstalled: migrations are running, edge
functions are being deployed and so on.
* We can show more accurate error messages: migrations succeeded but
edge functions could not be deployed. This helps users troubleshoot and
in the worst case recover via manual actions.

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-03-02 17:59:12 +08:00
..
2024-10-17 11:39:06 +02:00
2023-11-16 16:41:53 +00:00
2024-07-04 14:48:10 +08:00
2026-02-10 10:36:30 +08:00

Writing pages

Rough guidelines

  • Try to break down your pages into smaller building blocks - components which are tightly coupled to a page can be placed within the folder components/interfaces/xxx/... (Refer to the README.md under the components folder)
  • Keep to using useState hooks for any UI related logic, do not create MobX local stores to handle UI logic.

Template for building pages

import { NextPage } from 'next'
import { withAuth } from 'hooks/misc/withAuth'

// Import the corresponding layout based on the page
import { Layout } from 'components/layouts'

// Import the main building blocks of the page
import { ... } from 'components/interfaces/xxx'

// Import reusable UI components if needed
import { ... } from 'components/ui/xxx'

// Name your page accordingly
const Page: NextPage = () => {

  return (
    <Layout>
      <div>Page content</div>
    </Layout>
  )
}

export default withAuth(Page)