Browse Source

Make user data source refreshable in client apps

pull/1234/head
Andrew Kingston 6 years ago
parent
commit
0a99075cd4
  1. 13
      packages/client/src/components/ClientApp.svelte

13
packages/client/src/components/ClientApp.svelte

@ -11,6 +11,7 @@
screenStore, screenStore,
authStore, authStore,
} from "../store" } from "../store"
import { TableNames, ActionTypes } from "../constants"
// Provide contexts // Provide contexts
setContext("sdk", SDK) setContext("sdk", SDK)
@ -25,10 +26,20 @@
await authStore.actions.fetchUser() await authStore.actions.fetchUser()
loaded = true loaded = true
}) })
// Register this as a refreshable datasource so that user changes cause
// the user object to be refreshed
$: actions = [
{
type: ActionTypes.RefreshDatasource,
callback: () => authStore.actions.fetchUser(),
metadata: { datasource: { type: "table", tableId: TableNames.USERS } },
},
]
</script> </script>
{#if loaded && $screenStore.activeLayout} {#if loaded && $screenStore.activeLayout}
<Provider key="user" data={$authStore}> <Provider key="user" data={$authStore} {actions}>
<Component definition={$screenStore.activeLayout.props} /> <Component definition={$screenStore.activeLayout.props} />
<NotificationDisplay /> <NotificationDisplay />
</Provider> </Provider>

Loading…
Cancel
Save