Add categorized spaces hook
authorAjay Bura <ajbura@gmail.com>
Wed, 2 Mar 2022 15:54:30 +0000 (21:24 +0530)
committerAjay Bura <ajbura@gmail.com>
Wed, 2 Mar 2022 15:54:30 +0000 (21:24 +0530)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
src/app/hooks/useCategorizedSpaces.js [new file with mode: 0644]

diff --git a/src/app/hooks/useCategorizedSpaces.js b/src/app/hooks/useCategorizedSpaces.js
new file mode 100644 (file)
index 0000000..6d3c02a
--- /dev/null
@@ -0,0 +1,25 @@
+/* eslint-disable import/prefer-default-export */
+import { useState, useEffect } from 'react';
+
+import initMatrix from '../../client/initMatrix';
+import cons from '../../client/state/cons';
+
+export function useCategorizedSpaces() {
+  const { accountData } = initMatrix;
+  const [categorizedSpaces, setCategorizedSpaces] = useState([...accountData.categorizedSpaces]);
+
+  useEffect(() => {
+    const handleCategorizedSpaces = () => {
+      setCategorizedSpaces([...accountData.categorizedSpaces]);
+    };
+    accountData.on(cons.events.accountData.CATEGORIZE_SPACE_UPDATED, handleCategorizedSpaces);
+    return () => {
+      accountData.removeListener(
+        cons.events.accountData.CATEGORIZE_SPACE_UPDATED,
+        handleCategorizedSpaces,
+      );
+    };
+  }, []);
+
+  return [categorizedSpaces];
+}