mirror of
https://github.com/expo/dev-plugins.git
synced 2026-11-14 17:50:01 -10:00
# Why move the tinybase inspector plugin from https://github.com/Kudo/expo-devtools-plugin-demo to this repo
23 lines
931 B
JavaScript
Generated
23 lines
931 B
JavaScript
Generated
import { useDevToolsPluginClient } from 'expo/devtools';
|
|
import { useEffect } from 'react';
|
|
export function useTinyBaseDevTools(store) {
|
|
const client = useDevToolsPluginClient('tinybase');
|
|
useEffect(() => {
|
|
const subscriptions = [];
|
|
/* Sync the full store on init */
|
|
client?.sendMessage('@tinybase-inspector/init', store.getJson());
|
|
subscriptions.push(client?.addMessageListener('@tinybase-inspector/edit', (data) => {
|
|
store.setJson(data);
|
|
}));
|
|
const listenerId = store.addDidFinishTransactionListener(() => {
|
|
client?.sendMessage('@tinybase-inspector/update', store.getJson());
|
|
});
|
|
return () => {
|
|
store.delListener(listenerId);
|
|
for (const subscription of subscriptions) {
|
|
subscription?.remove();
|
|
}
|
|
};
|
|
}, [client, store]);
|
|
}
|
|
//# sourceMappingURL=useTinyBaseDevTools.js.map
|