@rpcbase/client 0.219.0 → 0.222.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/rts/getUseDocument.js +2 -4
- package/rts/getUseQuery/index.js +3 -5
- package/rts/index.js +7 -7
- package/rts/rts.js +18 -12
- package/ui/nav/HeaderContainer/index.tsx +1 -133
package/package.json
CHANGED
package/rts/getUseDocument.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import getUseQuery from "./getUseQuery"
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
const getUseDocument = (
|
|
5
|
+
export const getUseDocument = (registerQuery) => (...args) => {
|
|
6
6
|
|
|
7
|
-
const useQuery = getUseQuery(
|
|
7
|
+
const useQuery = getUseQuery(registerQuery)
|
|
8
8
|
|
|
9
9
|
const res = useQuery(...args)
|
|
10
10
|
|
|
@@ -19,5 +19,3 @@ const getUseDocument = (register_query) => (...args) => {
|
|
|
19
19
|
|
|
20
20
|
return {...res, data}
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
export default getUseDocument
|
package/rts/getUseQuery/index.js
CHANGED
|
@@ -23,8 +23,8 @@ import useData from "./useData"
|
|
|
23
23
|
|
|
24
24
|
const log = debug("rb:rts:useQuery")
|
|
25
25
|
|
|
26
|
-
const getUseQuery =
|
|
27
|
-
(
|
|
26
|
+
export const getUseQuery =
|
|
27
|
+
(registerQuery) =>
|
|
28
28
|
(model_name, query = {}, options = {}) => {
|
|
29
29
|
const id = useId()
|
|
30
30
|
|
|
@@ -128,7 +128,7 @@ const getUseQuery =
|
|
|
128
128
|
|
|
129
129
|
log("will register query", model_name, query)
|
|
130
130
|
|
|
131
|
-
const unsubscribe =
|
|
131
|
+
const unsubscribe = registerQuery(
|
|
132
132
|
model_name,
|
|
133
133
|
query,
|
|
134
134
|
{...options, key: queryKey, uid},
|
|
@@ -231,5 +231,3 @@ const getUseQuery =
|
|
|
231
231
|
|
|
232
232
|
return result
|
|
233
233
|
}
|
|
234
|
-
|
|
235
|
-
export default getUseQuery
|
package/rts/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import getUseQuery from "./getUseQuery"
|
|
1
|
+
import {registerQuery, sendMessage, onMessage} from "./rts"
|
|
2
|
+
import {getUseDocument} from "./getUseDocument"
|
|
3
|
+
import {getUseQuery} from "./getUseQuery"
|
|
5
4
|
|
|
6
|
-
export const useQuery = getUseQuery(register_query)
|
|
7
5
|
|
|
8
|
-
export const
|
|
6
|
+
export const useQuery = getUseQuery(registerQuery)
|
|
9
7
|
|
|
10
|
-
export
|
|
8
|
+
export const useDocument = getUseDocument(registerQuery)
|
|
9
|
+
|
|
10
|
+
export {registerQuery, sendMessage, onMessage}
|
package/rts/rts.js
CHANGED
|
@@ -39,16 +39,16 @@ export const add_local_txn = (txn_id) => {
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
// TODO: add compression / decompression
|
|
42
|
-
const
|
|
43
|
-
log("
|
|
42
|
+
const dispatchQueryPayload = (payload, uid) => {
|
|
43
|
+
log("dispatchQueryPayload", payload)
|
|
44
44
|
|
|
45
45
|
const {model_name, query_key} = payload
|
|
46
46
|
// const cb = _get(_callbacks, `${model_name}.${query_key}`)
|
|
47
47
|
const callbacks = _callbacks[`${model_name}.${query_key}`]
|
|
48
48
|
|
|
49
49
|
if (!callbacks || !Array.isArray(callbacks)) {
|
|
50
|
-
log("
|
|
51
|
-
console.error("
|
|
50
|
+
log("dispatchQueryPayload", "unable to find callback for query payload", payload)
|
|
51
|
+
console.error("dispatchQueryPayload", "unable to find callback for query payload", payload)
|
|
52
52
|
return
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -65,7 +65,7 @@ const dispatch_query_payload = (payload, uid) => {
|
|
|
65
65
|
data = JSON.parse(payload.data_buf)
|
|
66
66
|
} catch (err) {
|
|
67
67
|
console.log("Error", err)
|
|
68
|
-
log("
|
|
68
|
+
log("dispatchQueryPayload", "unable to parse or send data from payload:", payload.data_buf)
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
if (!data) {
|
|
@@ -126,7 +126,7 @@ export const connect = (tenant_id, user_id) => new Promise((resolve) => {
|
|
|
126
126
|
|
|
127
127
|
_socket.on("query_payload", (payload) => {
|
|
128
128
|
// console.log("socket:query_payload", payload)
|
|
129
|
-
|
|
129
|
+
dispatchQueryPayload(payload, user_id)
|
|
130
130
|
})
|
|
131
131
|
|
|
132
132
|
_socket.on("delete_doc", (payload) => {
|
|
@@ -161,7 +161,7 @@ export const reconnect = (tenant_id, user_id) => {
|
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
// register a query
|
|
164
|
-
export const
|
|
164
|
+
export const registerQuery = (model_name, query, _options, _callback) => {
|
|
165
165
|
// left shift args if _options is undefined
|
|
166
166
|
let options
|
|
167
167
|
let callback
|
|
@@ -174,10 +174,10 @@ export const register_query = (model_name, query, _options, _callback) => {
|
|
|
174
174
|
callback = _options
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
-
log("
|
|
177
|
+
log("registerQuery", {model_name, query, options, callback})
|
|
178
178
|
|
|
179
179
|
if (!_socket) {
|
|
180
|
-
log("
|
|
180
|
+
log("registerQuery: trying to use null socket", {model_name, query})
|
|
181
181
|
return
|
|
182
182
|
}
|
|
183
183
|
|
|
@@ -200,7 +200,7 @@ export const register_query = (model_name, query, _options, _callback) => {
|
|
|
200
200
|
|
|
201
201
|
// TODO: why both run and register query here ? the run_query should come straight from register ?
|
|
202
202
|
_socket.emit("run_query", {model_name, query, query_key, options})
|
|
203
|
-
_socket.emit("
|
|
203
|
+
_socket.emit("registerQuery", {model_name, query, query_key, options})
|
|
204
204
|
|
|
205
205
|
if (Platform.OS === "web") {
|
|
206
206
|
// run the query from the cache a first time
|
|
@@ -220,7 +220,7 @@ export const register_query = (model_name, query, _options, _callback) => {
|
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
|
|
223
|
-
export const
|
|
223
|
+
export const sendMessage = (message, payload) => {
|
|
224
224
|
if (!_socket) {
|
|
225
225
|
console.error("attempting to send message without socket", {message, payload})
|
|
226
226
|
return
|
|
@@ -230,8 +230,14 @@ export const send_message = (message, payload) => {
|
|
|
230
230
|
}
|
|
231
231
|
|
|
232
232
|
|
|
233
|
-
export const
|
|
233
|
+
export const onMessage = (message, callback) => {
|
|
234
234
|
if (!_socket) {
|
|
235
235
|
throw new Error("registering socket message listener without socket")
|
|
236
236
|
}
|
|
237
|
+
|
|
238
|
+
_socket.on(message, callback)
|
|
239
|
+
|
|
240
|
+
return () => {
|
|
241
|
+
_socket.off(message, callback)
|
|
242
|
+
}
|
|
237
243
|
}
|
|
@@ -1,145 +1,13 @@
|
|
|
1
1
|
import {ReactNode} from "react"
|
|
2
2
|
|
|
3
|
-
// import apiClient from "../../../apiClient"
|
|
4
|
-
|
|
5
|
-
// import SearchAnything from "components/search/SearchAnything"
|
|
6
|
-
|
|
7
|
-
// import LogoNav from "./components/LogoNav"
|
|
8
|
-
|
|
9
|
-
// Env Selector
|
|
10
|
-
// import useFilteredEnvs from "./components/EnvSelector/useFilteredEnvs"
|
|
11
|
-
// import EnvSelectorToggle from "./components/EnvSelector/Toggle"
|
|
12
|
-
// import EnvSelectorDropdown from "./components/EnvSelector/Dropdown"
|
|
13
|
-
// Group Selector
|
|
14
|
-
// import useFilteredGroups from "./components/GroupSelector/useFilteredGroups"
|
|
15
|
-
// import GroupSelectorToggle from "./components/GroupSelector/Toggle"
|
|
16
|
-
// import GroupSelectorDropdown from "./components/GroupSelector/Dropdown"
|
|
17
|
-
|
|
18
|
-
// import MorphingDropdown from "./components/MorphingDropdown"
|
|
19
|
-
|
|
20
|
-
// import AccountsToggle from "./components/AccountsToggle"
|
|
21
|
-
// import NotificationsToggle from "./components/NotificationsToggle"
|
|
22
|
-
// import EnvSettingsToggle from "./components/EnvSettingsToggle"
|
|
23
|
-
// import PublishControl from "./components/PublishControl"
|
|
24
|
-
|
|
25
|
-
// import AccountsDropdown from "./components/AccountsDropdown"
|
|
26
|
-
// import NotificationsDropdown from "./components/NotificationsDropdown"
|
|
27
|
-
// import PhoneDropdown from "components/phone/PhoneDropdown"
|
|
28
|
-
// import EnvSettingsDropdown from "./components/EnvSettingsDropdown"
|
|
29
|
-
|
|
30
3
|
import "./header.scss"
|
|
31
4
|
import {useContentViewContext} from "../ContentView/ContentViewContext"
|
|
32
5
|
|
|
33
|
-
// const DefaultHeader = () => {
|
|
34
|
-
// return (
|
|
35
|
-
// <>
|
|
36
|
-
// <LogoNav isSignedIn={false} />
|
|
37
|
-
|
|
38
|
-
// <div className="nav-default d-flex flex-row justify-content-between w-100">
|
|
39
|
-
// <div className="d-flex flex-row"></div>
|
|
40
|
-
|
|
41
|
-
// <div className="d-flex flex-row">
|
|
42
|
-
// <a className="nav-link px-2 me-2 fw-bold" href="/signin">
|
|
43
|
-
// Sign In
|
|
44
|
-
// </a>
|
|
45
|
-
// </div>
|
|
46
|
-
// </div>
|
|
47
|
-
// </>
|
|
48
|
-
// )
|
|
49
|
-
// }
|
|
50
|
-
|
|
51
|
-
// const SignedInHeader = () => {
|
|
52
|
-
// const loc = window.location.pathname
|
|
53
|
-
|
|
54
|
-
// const [accounts, setAccounts] = useState([])
|
|
55
|
-
|
|
56
|
-
// const {envs, activeEnv, setFilter: setEnvsFilter} = useFilteredEnvs()
|
|
57
|
-
// const {groups, activeGroup, setFilter: setGroupsFilter} = useFilteredGroups()
|
|
58
|
-
|
|
59
|
-
// useEffect(() => {
|
|
60
|
-
// // TODO: useapi hook with cache
|
|
61
|
-
// const load = async() => {
|
|
62
|
-
// const res = await apiClient.post("/api/v1/auth/get_accounts")
|
|
63
|
-
// assert(res.data.status === "ok")
|
|
64
|
-
// setAccounts(res.data.accounts)
|
|
65
|
-
// // console.log("accounts", res.data.accounts)
|
|
66
|
-
// }
|
|
67
|
-
|
|
68
|
-
// load()
|
|
69
|
-
// }, [])
|
|
70
|
-
|
|
71
|
-
// return (
|
|
72
|
-
// <>
|
|
73
|
-
// <MorphingDropdown.Provider side="left">
|
|
74
|
-
// <LogoNav isSignedIn={true} />
|
|
75
|
-
|
|
76
|
-
// <EnvSelectorToggle activeEnv={activeEnv} />
|
|
77
|
-
// <GroupSelectorToggle activeGroup={activeGroup} />
|
|
78
|
-
|
|
79
|
-
// <MorphingDropdown.Portal>
|
|
80
|
-
// <EnvSelectorDropdown
|
|
81
|
-
// id="env-selector"
|
|
82
|
-
// envs={envs}
|
|
83
|
-
// activeEnv={activeEnv}
|
|
84
|
-
// setFilter={setEnvsFilter}
|
|
85
|
-
// />
|
|
86
|
-
|
|
87
|
-
// <GroupSelectorDropdown
|
|
88
|
-
// id="group-selector"
|
|
89
|
-
// groups={groups}
|
|
90
|
-
// activeGroup={activeGroup}
|
|
91
|
-
// setFilter={setGroupsFilter}
|
|
92
|
-
// />
|
|
93
|
-
// </MorphingDropdown.Portal>
|
|
94
|
-
// </MorphingDropdown.Provider>
|
|
95
|
-
|
|
96
|
-
// {/* Search anything */}
|
|
97
|
-
// <SearchAnything />
|
|
98
|
-
|
|
99
|
-
// <div className="ms-auto d-none d-md-flex flex-row text-truncate">
|
|
100
|
-
// <a className="nav-link mx-2 px-1" href="/docs">
|
|
101
|
-
// Docs
|
|
102
|
-
// </a>
|
|
103
|
-
// <a
|
|
104
|
-
// className={cx("nav-link px-1", {active: loc.startsWith("/marketplace")})}
|
|
105
|
-
// href="/marketplace"
|
|
106
|
-
// >
|
|
107
|
-
// Marketplace
|
|
108
|
-
// </a>
|
|
109
|
-
// </div>
|
|
110
|
-
|
|
111
|
-
// <PublishControl />
|
|
112
|
-
|
|
113
|
-
// {/* Phone */}
|
|
114
|
-
// <PhoneDropdown />
|
|
115
|
-
|
|
116
|
-
// <MorphingDropdown.Provider side="right">
|
|
117
|
-
// {/* WARNING: update the anchor-${ids} on the toggle to match the menus if adding or removing */}
|
|
118
|
-
// <NotificationsToggle />
|
|
119
|
-
|
|
120
|
-
// <EnvSettingsToggle />
|
|
121
|
-
|
|
122
|
-
// <AccountsToggle />
|
|
123
|
-
|
|
124
|
-
// <MorphingDropdown.Portal>
|
|
125
|
-
// {/* Notifications */}
|
|
126
|
-
// <NotificationsDropdown id="notifications" />
|
|
127
|
-
|
|
128
|
-
// {/* Env Settings */}
|
|
129
|
-
// <EnvSettingsDropdown id="env-setup" />
|
|
130
|
-
|
|
131
|
-
// {/* Accounts + Org */}
|
|
132
|
-
// <AccountsDropdown id="accounts" accounts={accounts} />
|
|
133
|
-
// </MorphingDropdown.Portal>
|
|
134
|
-
// </MorphingDropdown.Provider>
|
|
135
|
-
// </>
|
|
136
|
-
// )
|
|
137
|
-
// }
|
|
138
6
|
|
|
139
7
|
export const HeaderContainer = ({children}: { children: ReactNode }) => {
|
|
140
8
|
const contentViewContext = useContentViewContext()
|
|
141
9
|
|
|
142
|
-
if (!children) return null
|
|
10
|
+
if (!children || !contentViewContext) return null
|
|
143
11
|
|
|
144
12
|
return (
|
|
145
13
|
<nav
|