@helenejs/react
Version:
Real-time Web Apps for Node.js
26 lines • 1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useCount = useCount;
const react_1 = require("react");
const use_object_1 = require("./use-object");
const data_1 = require("@helenejs/data");
function useCount(collection, filter) {
const [data, setData] = (0, react_1.useState)(null);
(0, react_1.useEffect)(() => {
if (!collection)
return;
async function onUpdated() {
const result = await collection.count(filter);
setData(result);
}
onUpdated().catch(console.error);
collection.on(data_1.CollectionEvent.READY, onUpdated);
collection.on(data_1.CollectionEvent.UPDATED, onUpdated);
return () => {
collection.off(data_1.CollectionEvent.READY, onUpdated);
collection.off(data_1.CollectionEvent.UPDATED, onUpdated);
};
}, [collection, (0, use_object_1.useObject)(filter)]);
return data;
}
//# sourceMappingURL=use-count.js.map