miolo-react 3.0.0-beta.10 → 3.0.0-beta.102
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/dist/miolo-react.mjs +1 -1
- package/dist/miolo-react.umd.js +8 -10
- package/dist/miolo-react.umd.js.map +1 -1
- package/package.json +7 -12
- package/src/AppBrowser.jsx +14 -0
- package/src/AppServer.jsx +17 -0
- package/src/context/MioloContext.mjs +5 -0
- package/src/context/MioloContextProvider.jsx +95 -0
- package/src/context/useMioloContext.jsx +6 -0
- package/src/context/withMioloContext.jsx +15 -0
- package/src/index.mjs +7 -0
- package/src/ssr/getSsrDataFromContext.mjs +33 -0
- package/src/ssr/useSsrDataOrReload.mjs +43 -0
package/dist/miolo-react.mjs
CHANGED
package/dist/miolo-react.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* miolo-react v3.0.0-beta.
|
|
2
|
+
* miolo-react v3.0.0-beta.102
|
|
3
3
|
*
|
|
4
4
|
* https://www.afialapis.com/os/miolo
|
|
5
5
|
*
|
|
@@ -146,19 +146,17 @@
|
|
|
146
146
|
i = 0;
|
|
147
147
|
}
|
|
148
148
|
_regeneratorDefine = function (e, r, n, t) {
|
|
149
|
-
|
|
149
|
+
function o(r, n) {
|
|
150
|
+
_regeneratorDefine(e, r, function (e) {
|
|
151
|
+
return this._invoke(r, n, e);
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
r ? i ? i(e, r, {
|
|
150
155
|
value: n,
|
|
151
156
|
enumerable: !t,
|
|
152
157
|
configurable: !t,
|
|
153
158
|
writable: !t
|
|
154
|
-
}) : e[r] = n;
|
|
155
|
-
function o(r, n) {
|
|
156
|
-
_regeneratorDefine(e, r, function (e) {
|
|
157
|
-
return this._invoke(r, n, e);
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
o("next", 0), o("throw", 1), o("return", 2);
|
|
161
|
-
}
|
|
159
|
+
}) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
|
|
162
160
|
}, _regeneratorDefine(e, r, n, t);
|
|
163
161
|
}
|
|
164
162
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"miolo-react.umd.js","sources":["../src/context/MioloContext.mjs","../src/context/withMioloContext.jsx","../src/context/useMioloContext.jsx","../src/ssr/getSsrDataFromContext.mjs","../src/ssr/useSsrDataOrReload.mjs","../src/context/MioloContextProvider.jsx","../src/AppBrowser.jsx","../src/AppServer.jsx"],"sourcesContent":["import React from 'react'\n\nconst MioloContext = React.createContext()\n\nexport default MioloContext","import React, {useContext} from 'react'\nimport MioloContext from './MioloContext.mjs'\n\n/* eslint react/display-name:0 */\nconst withMioloContext = (BaseComponent) => (props) => {\n const context = useContext(MioloContext)\n\n return (\n <BaseComponent {...props}\n {...context}/>\n );\n}\n\n\nexport default withMioloContext","import {useContext} from 'react'\nimport MioloContext from './MioloContext.mjs'\n\nconst useMioloContext = () => useContext(MioloContext)\n\nexport default useMioloContext\n","\nconst _getDataFromWindow = (name) => {\n try {\n if (window != undefined) {\n const ssr_data= window.__CONTEXT.ssr_data\n \n if (ssr_data!=undefined) {\n if (ssr_data[name]!=undefined) {\n return ssr_data[name]\n }\n }\n }\n } catch(e) {}\n \n return undefined\n}\n\nconst getSsrDataFromContext = (context, name) => {\n let data= undefined\n\n if (context?.ssr_data != undefined && context?.ssr_data[name]!=undefined) {\n data= context.ssr_data[name]\n } else {\n const wdata= _getDataFromWindow(name)\n if (wdata != undefined) {\n data= wdata\n }\n }\n \n return data\n}\n\nexport default getSsrDataFromContext\n","import {useState, useCallback, useEffect} from 'react'\nimport getSsrDataFromContext from './getSsrDataFromContext.mjs'\n\nconst useSsrDataOrReload = (context, miolo, name, defval, loader, modifier) => {\n \n const _maybeModify = useCallback((value) => {\n return modifier==undefined ? value : modifier(value)\n }, [modifier])\n\n const ssrDataFromContext = getSsrDataFromContext(context, name)\n const [ssrData, setSsrData] = useState(_maybeModify(\n ssrDataFromContext != undefined \n ? ssrDataFromContext : defval))\n const [needToRefresh, setNeedToRefresh] = useState(ssrDataFromContext == undefined)\n\n const refreshSsrData = useCallback(() => {\n if (loader == undefined) {\n return\n }\n\n const {fetcher} = miolo\n\n async function fetchData() {\n let nSsrData = await loader(context, fetcher)\n setSsrData(_maybeModify(nSsrData))\n }\n\n fetchData()\n }, [context, miolo, loader, _maybeModify]) \n \n useEffect(() => {\n try {\n if (needToRefresh) {\n setNeedToRefresh(false)\n refreshSsrData()\n }\n } catch(e) {}\n }, [needToRefresh, refreshSsrData]) \n\n return [ssrData, (data) => setSsrData(_maybeModify(data)), refreshSsrData]\n}\n\nexport {useSsrDataOrReload}","import React , {useState, useEffect, useCallback} from 'react'\nimport Context from './MioloContext.mjs'\nimport { miolo_client } from 'miolo-cli'\nimport { useSsrDataOrReload } from '../ssr/useSsrDataOrReload.mjs'\n\n\nconst MioloContextProvider = ({context, children}) => {\n const [innerContext, setInnerContext]= useState(context)\n const [mioloObj, setMioloObj]= useState(miolo_client(context))\n \n useEffect(() => {\n setInnerContext(context)\n setMioloObj(miolo_client(context))\n }, [context])\n \n const login = useCallback(async (credentials) => {\n const { fetcher } = mioloObj\n const { config } = innerContext\n\n const url = config.login_url || '/login'\n const resp = await fetcher.login(url, credentials)\n\n if (resp?.data) {\n if (resp?.data?.authenticated) {\n setInnerContext(current => {\n return {\n ...current,\n ...resp?.data,\n }\n })\n }\n\n return resp?.data\n }\n\n return {}\n }, [innerContext, mioloObj])\n\n const logout = useCallback(async () => {\n const { fetcher } = mioloObj\n const { config } = innerContext\n\n const url = config.logout_url || '/logout'\n const _resp = await fetcher.logout(url)\n // resp.redirected= true\n\n setInnerContext(current => {\n return {\n ...current,\n user: undefined,\n authenticated: false,\n }\n })\n\n return {\n user: undefined,\n authenticated: false,\n }\n }, [innerContext, mioloObj])\n\n const updateUser = useCallback((user) => {\n setInnerContext((current) => {\n return {\n ...current,\n user,\n }\n })\n }, [])\n\n const useSsrData = (name, defval, loader, modifier) => {\n return useSsrDataOrReload(innerContext, mioloObj, name, defval, loader, modifier)\n } \n \n return (\n <Context.Provider \n value={{\n //context: innerContext, \n //setContext: setInnerContext,\n //miolo: mioloObj,\n user: innerContext.user,\n updateUser,\n authenticated: innerContext.authenticated,\n fetcher: mioloObj.fetcher,\n //socket: mioloObj.socket,\n login,\n logout,\n useSsrData\n }}>\n {children}\n </Context.Provider>\n )\n}\n\n\nexport default MioloContextProvider\n","import React from 'react'\nimport MioloContextProvider from './context/MioloContextProvider.jsx'\n\nconst AppBrowser = ({ children }) => {\n const context = typeof window !== 'undefined' && window.__CONTEXT ? window.__CONTEXT : {};\n\n return (\n <MioloContextProvider context={context}>\n {children}\n </MioloContextProvider>\n ) \n}\n\nexport default AppBrowser\n","\nimport React from 'react'\nimport MioloContextProvider from './context/MioloContextProvider.jsx'\n\n\nconst AppServer = ({context, children}) => {\n\n return (\n <MioloContextProvider \n context= {context || {}}>\n {children}\n </MioloContextProvider>\n )\n}\n\nexport default AppServer\n\n"],"names":["MioloContext","React","createContext","withMioloContext","BaseComponent","props","context","useContext","createElement","_extends","useMioloContext","_getDataFromWindow","name","window","undefined","ssr_data","__CONTEXT","e","getSsrDataFromContext","data","wdata","useSsrDataOrReload","miolo","defval","loader","modifier","_maybeModify","useCallback","value","ssrDataFromContext","_useState","useState","ssrData","setSsrData","_useState2","needToRefresh","setNeedToRefresh","refreshSsrData","fetcher","fetchData","_fetchData","apply","arguments","_asyncToGenerator","_regenerator","m","_callee","nSsrData","w","_context","n","v","a","useEffect","MioloContextProvider","_ref","children","innerContext","setInnerContext","miolo_client","mioloObj","setMioloObj","login","_ref2","credentials","config","url","resp","_resp$data","login_url","authenticated","current","_x","logout","_callee2","_context2","logout_url","user","updateUser","useSsrData","Context","Provider","AppBrowser","AppServer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"miolo-react.umd.js","sources":["../src/context/MioloContext.mjs","../src/context/withMioloContext.jsx","../src/context/useMioloContext.jsx","../src/ssr/getSsrDataFromContext.mjs","../src/ssr/useSsrDataOrReload.mjs","../src/context/MioloContextProvider.jsx","../src/AppBrowser.jsx","../src/AppServer.jsx"],"sourcesContent":["import React from 'react'\n\nconst MioloContext = React.createContext()\n\nexport default MioloContext","import React, {useContext} from 'react'\nimport MioloContext from './MioloContext.mjs'\n\n/* eslint react/display-name:0 */\nconst withMioloContext = (BaseComponent) => (props) => {\n const context = useContext(MioloContext)\n\n return (\n <BaseComponent {...props}\n {...context}/>\n );\n}\n\n\nexport default withMioloContext","import {useContext} from 'react'\nimport MioloContext from './MioloContext.mjs'\n\nconst useMioloContext = () => useContext(MioloContext)\n\nexport default useMioloContext\n","\nconst _getDataFromWindow = (name) => {\n try {\n if (window != undefined) {\n const ssr_data= window.__CONTEXT.ssr_data\n \n if (ssr_data!=undefined) {\n if (ssr_data[name]!=undefined) {\n return ssr_data[name]\n }\n }\n }\n } catch(e) {}\n \n return undefined\n}\n\nconst getSsrDataFromContext = (context, name) => {\n let data= undefined\n\n if (context?.ssr_data != undefined && context?.ssr_data[name]!=undefined) {\n data= context.ssr_data[name]\n } else {\n const wdata= _getDataFromWindow(name)\n if (wdata != undefined) {\n data= wdata\n }\n }\n \n return data\n}\n\nexport default getSsrDataFromContext\n","import {useState, useCallback, useEffect} from 'react'\nimport getSsrDataFromContext from './getSsrDataFromContext.mjs'\n\nconst useSsrDataOrReload = (context, miolo, name, defval, loader, modifier) => {\n \n const _maybeModify = useCallback((value) => {\n return modifier==undefined ? value : modifier(value)\n }, [modifier])\n\n const ssrDataFromContext = getSsrDataFromContext(context, name)\n const [ssrData, setSsrData] = useState(_maybeModify(\n ssrDataFromContext != undefined \n ? ssrDataFromContext : defval))\n const [needToRefresh, setNeedToRefresh] = useState(ssrDataFromContext == undefined)\n\n const refreshSsrData = useCallback(() => {\n if (loader == undefined) {\n return\n }\n\n const {fetcher} = miolo\n\n async function fetchData() {\n let nSsrData = await loader(context, fetcher)\n setSsrData(_maybeModify(nSsrData))\n }\n\n fetchData()\n }, [context, miolo, loader, _maybeModify]) \n \n useEffect(() => {\n try {\n if (needToRefresh) {\n setNeedToRefresh(false)\n refreshSsrData()\n }\n } catch(e) {}\n }, [needToRefresh, refreshSsrData]) \n\n return [ssrData, (data) => setSsrData(_maybeModify(data)), refreshSsrData]\n}\n\nexport {useSsrDataOrReload}","import React , {useState, useEffect, useCallback} from 'react'\nimport Context from './MioloContext.mjs'\nimport { miolo_client } from 'miolo-cli'\nimport { useSsrDataOrReload } from '../ssr/useSsrDataOrReload.mjs'\n\n\nconst MioloContextProvider = ({context, children}) => {\n const [innerContext, setInnerContext]= useState(context)\n const [mioloObj, setMioloObj]= useState(miolo_client(context))\n \n useEffect(() => {\n setInnerContext(context)\n setMioloObj(miolo_client(context))\n }, [context])\n \n const login = useCallback(async (credentials) => {\n const { fetcher } = mioloObj\n const { config } = innerContext\n\n const url = config.login_url || '/login'\n const resp = await fetcher.login(url, credentials)\n\n if (resp?.data) {\n if (resp?.data?.authenticated) {\n setInnerContext(current => {\n return {\n ...current,\n ...resp?.data,\n }\n })\n }\n\n return resp?.data\n }\n\n return {}\n }, [innerContext, mioloObj])\n\n const logout = useCallback(async () => {\n const { fetcher } = mioloObj\n const { config } = innerContext\n\n const url = config.logout_url || '/logout'\n const _resp = await fetcher.logout(url)\n // resp.redirected= true\n\n setInnerContext(current => {\n return {\n ...current,\n user: undefined,\n authenticated: false,\n }\n })\n\n return {\n user: undefined,\n authenticated: false,\n }\n }, [innerContext, mioloObj])\n\n const updateUser = useCallback((user) => {\n setInnerContext((current) => {\n return {\n ...current,\n user,\n }\n })\n }, [])\n\n const useSsrData = (name, defval, loader, modifier) => {\n return useSsrDataOrReload(innerContext, mioloObj, name, defval, loader, modifier)\n } \n \n return (\n <Context.Provider \n value={{\n //context: innerContext, \n //setContext: setInnerContext,\n //miolo: mioloObj,\n user: innerContext.user,\n updateUser,\n authenticated: innerContext.authenticated,\n fetcher: mioloObj.fetcher,\n //socket: mioloObj.socket,\n login,\n logout,\n useSsrData\n }}>\n {children}\n </Context.Provider>\n )\n}\n\n\nexport default MioloContextProvider\n","import React from 'react'\nimport MioloContextProvider from './context/MioloContextProvider.jsx'\n\nconst AppBrowser = ({ children }) => {\n const context = typeof window !== 'undefined' && window.__CONTEXT ? window.__CONTEXT : {};\n\n return (\n <MioloContextProvider context={context}>\n {children}\n </MioloContextProvider>\n ) \n}\n\nexport default AppBrowser\n","\nimport React from 'react'\nimport MioloContextProvider from './context/MioloContextProvider.jsx'\n\n\nconst AppServer = ({context, children}) => {\n\n return (\n <MioloContextProvider \n context= {context || {}}>\n {children}\n </MioloContextProvider>\n )\n}\n\nexport default AppServer\n\n"],"names":["MioloContext","React","createContext","withMioloContext","BaseComponent","props","context","useContext","createElement","_extends","useMioloContext","_getDataFromWindow","name","window","undefined","ssr_data","__CONTEXT","e","getSsrDataFromContext","data","wdata","useSsrDataOrReload","miolo","defval","loader","modifier","_maybeModify","useCallback","value","ssrDataFromContext","_useState","useState","ssrData","setSsrData","_useState2","needToRefresh","setNeedToRefresh","refreshSsrData","fetcher","fetchData","_fetchData","apply","arguments","_asyncToGenerator","_regenerator","m","_callee","nSsrData","w","_context","n","v","a","useEffect","MioloContextProvider","_ref","children","innerContext","setInnerContext","miolo_client","mioloObj","setMioloObj","login","_ref2","credentials","config","url","resp","_resp$data","login_url","authenticated","current","_x","logout","_callee2","_context2","logout_url","user","updateUser","useSsrData","Context","Provider","AppBrowser","AppServer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEA,IAAMA,YAAY,gBAAGC,KAAK,CAACC,aAAa,EAAE;;ECC1C;AACA,MAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,aAAa,EAAA;IAAA,OAAK,UAACC,KAAK,EAAK;EACrD,IAAA,IAAMC,OAAO,GAAGC,gBAAU,CAACP,YAAY,CAAC;EAExC,IAAA,oBACEC,KAAA,CAAAO,aAAA,CAACJ,aAAa,EAAAK,QAAA,CAAA,EAAA,EAAKJ,KAAK,EACLC,OAAO,CAAE,CAAC;IAEjC,CAAC;EAAA;;ACRD,MAAMI,eAAe,GAAG,SAAlBA,eAAeA,GAAA;IAAA,OAASH,gBAAU,CAACP,YAAY,CAAC;EAAA;;ECFtD,IAAMW,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,IAAI,EAAK;IACnC,IAAI;MACF,IAAIC,MAAM,IAAIC,SAAS,EAAE;EACvB,MAAA,IAAMC,QAAQ,GAAEF,MAAM,CAACG,SAAS,CAACD,QAAQ;QAEzC,IAAIA,QAAQ,IAAED,SAAS,EAAE;EACvB,QAAA,IAAIC,QAAQ,CAACH,IAAI,CAAC,IAAEE,SAAS,EAAE;YAC7B,OAAOC,QAAQ,CAACH,IAAI,CAAC;EACvB,QAAA;EACF,MAAA;EACF,IAAA;EACF,EAAA,CAAC,CAAC,OAAMK,CAAC,EAAE,CAAC;EAEZ,EAAA,OAAOH,SAAS;EAClB,CAAC;EAED,IAAMI,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIZ,OAAO,EAAEM,IAAI,EAAK;IAC/C,IAAIO,IAAI,GAAEL,SAAS;IAEnB,IAAI,CAAAR,OAAO,IAAA,IAAA,GAAA,MAAA,GAAPA,OAAO,CAAES,QAAQ,KAAID,SAAS,IAAI,CAAAR,OAAO,IAAA,IAAA,GAAA,MAAA,GAAPA,OAAO,CAAES,QAAQ,CAACH,IAAI,CAAC,KAAEE,SAAS,EAAE;EACxEK,IAAAA,IAAI,GAAEb,OAAO,CAACS,QAAQ,CAACH,IAAI,CAAC;EAC9B,EAAA,CAAC,MAAM;EACL,IAAA,IAAMQ,KAAK,GAAET,kBAAkB,CAACC,IAAI,CAAC;MACrC,IAAIQ,KAAK,IAAIN,SAAS,EAAE;EACtBK,MAAAA,IAAI,GAAEC,KAAK;EACb,IAAA;EACF,EAAA;EAEA,EAAA,OAAOD,IAAI;EACb,CAAC;;EC3BD,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIf,OAAO,EAAEgB,KAAK,EAAEV,IAAI,EAAEW,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAK;EAE7E,EAAA,IAAMC,YAAY,GAAGC,iBAAW,CAAC,UAACC,KAAK,EAAK;MAC1C,OAAOH,QAAQ,IAAEX,SAAS,GAAGc,KAAK,GAAGH,QAAQ,CAACG,KAAK,CAAC;EACtD,EAAA,CAAC,EAAE,CAACH,QAAQ,CAAC,CAAC;EAEd,EAAA,IAAMI,kBAAkB,GAAGX,qBAAqB,CAACZ,OAAO,EAAEM,IAAI,CAAC;EAC/D,EAAA,IAAAkB,SAAA,GAA8BC,cAAQ,CAACL,YAAY,CACjDG,kBAAkB,IAAIf,SAAS,GAC7Be,kBAAkB,GAAGN,MAAM,CAAC,CAAC;EAF1BS,IAAAA,OAAO,GAAAF,SAAA,CAAA,CAAA,CAAA;EAAEG,IAAAA,UAAU,GAAAH,SAAA,CAAA,CAAA,CAAA;EAG1B,EAAA,IAAAI,UAAA,GAA0CH,cAAQ,CAACF,kBAAkB,IAAIf,SAAS,CAAC;EAA5EqB,IAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA;EAAEE,IAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA;EAEtC,EAAA,IAAMG,cAAc,GAAGV,iBAAW,CAAC,YAAM;MACvC,IAAIH,MAAM,IAAIV,SAAS,EAAE;EACvB,MAAA;EACF,IAAA;EAEA,IAAA,IAAOwB,OAAO,GAAIhB,KAAK,CAAhBgB,OAAO;EAAS,IAAA,SAERC,SAASA,GAAA;EAAA,MAAA,OAAAC,UAAA,CAAAC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA,IAAA;EAAA,IAAA,SAAAF,UAAAA,GAAA;QAAAA,UAAA,GAAAG,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAAxB,SAAAC,OAAAA,GAAA;EAAA,QAAA,IAAAC,QAAA;EAAA,QAAA,OAAAH,YAAA,EAAA,CAAAI,CAAA,CAAA,UAAAC,QAAA,EAAA;YAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,CAAA;EAAA,YAAA,KAAA,CAAA;EAAAD,cAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA;EAAA,cAAA,OACuB1B,MAAM,CAAClB,OAAO,EAAEgC,OAAO,CAAC;EAAA,YAAA,KAAA,CAAA;gBAAzCS,QAAQ,GAAAE,QAAA,CAAAE,CAAA;EACZlB,cAAAA,UAAU,CAACP,YAAY,CAACqB,QAAQ,CAAC,CAAC;EAAA,YAAA,KAAA,CAAA;gBAAA,OAAAE,QAAA,CAAAG,CAAA,CAAA,CAAA,CAAA;EAAA;EAAA,QAAA,CAAA,EAAAN,OAAA,CAAA;QAAA,CACnC,CAAA,CAAA;EAAA,MAAA,OAAAN,UAAA,CAAAC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA,IAAA;EAEDH,IAAAA,SAAS,EAAE;IACb,CAAC,EAAE,CAACjC,OAAO,EAAEgB,KAAK,EAAEE,MAAM,EAAEE,YAAY,CAAC,CAAC;EAE1C2B,EAAAA,eAAS,CAAC,YAAM;MACd,IAAI;EACF,MAAA,IAAIlB,aAAa,EAAE;UACjBC,gBAAgB,CAAC,KAAK,CAAC;EACvBC,QAAAA,cAAc,EAAE;EAClB,MAAA;EACF,IAAA,CAAC,CAAC,OAAMpB,CAAC,EAAE,CAAC;EACd,EAAA,CAAC,EAAE,CAACkB,aAAa,EAAEE,cAAc,CAAC,CAAC;EAEnC,EAAA,OAAO,CAACL,OAAO,EAAE,UAACb,IAAI,EAAA;EAAA,IAAA,OAAKc,UAAU,CAACP,YAAY,CAACP,IAAI,CAAC,CAAC;EAAA,EAAA,CAAA,EAAEkB,cAAc,CAAC;EAC5E,CAAC;;EClCD,IAAMiB,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAA4B;EAAA,EAAA,IAAvBjD,OAAO,GAAAiD,IAAA,CAAPjD,OAAO;MAAEkD,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EAC9C,EAAA,IAAA1B,SAAA,GAAuCC,cAAQ,CAACzB,OAAO,CAAC;EAAjDmD,IAAAA,YAAY,GAAA3B,SAAA,CAAA,CAAA,CAAA;EAAE4B,IAAAA,eAAe,GAAA5B,SAAA,CAAA,CAAA,CAAA;IACpC,IAAAI,UAAA,GAA+BH,cAAQ,CAAC4B,qBAAY,CAACrD,OAAO,CAAC,CAAC;EAAvDsD,IAAAA,QAAQ,GAAA1B,UAAA,CAAA,CAAA,CAAA;EAAE2B,IAAAA,WAAW,GAAA3B,UAAA,CAAA,CAAA,CAAA;EAE5BmB,EAAAA,eAAS,CAAC,YAAM;MACdK,eAAe,CAACpD,OAAO,CAAC;EACxBuD,IAAAA,WAAW,CAACF,qBAAY,CAACrD,OAAO,CAAC,CAAC;EACpC,EAAA,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;IAEb,IAAMwD,KAAK,GAAGnC,iBAAW,cAAA,YAAA;MAAA,IAAAoC,KAAA,GAAApB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAAC,SAAAC,OAAAA,CAAOkB,WAAW,EAAA;QAAA,IAAA1B,OAAA,EAAA2B,MAAA,EAAAC,GAAA,EAAAC,IAAA,EAAAC,UAAA;EAAA,MAAA,OAAAxB,YAAA,EAAA,CAAAI,CAAA,CAAA,UAAAC,QAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,CAAA;EAAA,UAAA,KAAA,CAAA;cAClCZ,OAAO,GAAKsB,QAAQ,CAApBtB,OAAO;cACP2B,MAAM,GAAKR,YAAY,CAAvBQ,MAAM;EAERC,YAAAA,GAAG,GAAGD,MAAM,CAACI,SAAS,IAAI,QAAQ;EAAApB,YAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA;EAAA,YAAA,OACrBZ,OAAO,CAACwB,KAAK,CAACI,GAAG,EAAEF,WAAW,CAAC;EAAA,UAAA,KAAA,CAAA;cAA5CG,IAAI,GAAAlB,QAAA,CAAAE,CAAA;EAAA,YAAA,IAAA,EAENgB,IAAI,IAAA,IAAA,IAAJA,IAAI,CAAEhD,IAAI,CAAA,EAAA;EAAA8B,cAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA;EAAA,cAAA;EAAA,YAAA;cACZ,IAAIiB,IAAI,IAAA,IAAA,IAAA,CAAAC,UAAA,GAAJD,IAAI,CAAEhD,IAAI,KAAA,IAAA,IAAViD,UAAA,CAAYE,aAAa,EAAE;gBAC7BZ,eAAe,CAAC,UAAAa,OAAO,EAAI;kBACzB,OAAA9D,QAAA,KACK8D,OAAO,EACPJ,IAAI,IAAA,IAAA,GAAA,MAAA,GAAJA,IAAI,CAAEhD,IAAI,CAAA;EAEjB,cAAA,CAAC,CAAC;EACJ,YAAA;cAAC,OAAA8B,QAAA,CAAAG,CAAA,CAAA,CAAA,EAEMe,IAAI,IAAA,IAAA,GAAA,MAAA,GAAJA,IAAI,CAAEhD,IAAI,CAAA;EAAA,UAAA,KAAA,CAAA;EAAA,YAAA,OAAA8B,QAAA,CAAAG,CAAA,CAAA,CAAA,EAGZ,EAAE,CAAA;EAAA;EAAA,MAAA,CAAA,EAAAN,OAAA,CAAA;MAAA,CACV,CAAA,CAAA;EAAA,IAAA,OAAA,UAAA0B,EAAA,EAAA;EAAA,MAAA,OAAAT,KAAA,CAAAtB,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;EAAA,IAAA,CAAA;EAAA,EAAA,CAAA,EAAA,EAAE,CAACe,YAAY,EAAEG,QAAQ,CAAC,CAAC;IAE5B,IAAMa,MAAM,GAAG9C,iBAAW,cAAAgB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAAC,SAAA6B,QAAAA,GAAA;EAAA,IAAA,IAAApC,OAAA,CAAA,CAAA2B,MAAA,CAAA,CAAAC,GAAA;EAAA,IAAA,OAAAtB,YAAA,EAAA,CAAAI,CAAA,CAAA,UAAA2B,SAAA,EAAA;QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAzB,CAAA;EAAA,QAAA,KAAA,CAAA;YACjBZ,OAAO,GAAKsB,QAAQ,CAApBtB,OAAO;YACP2B,MAAM,GAAKR,YAAY,CAAvBQ,MAAM;EAERC,UAAAA,GAAG,GAAGD,MAAM,CAACW,UAAU,IAAI,SAAS;EAAAD,UAAAA,SAAA,CAAAzB,CAAA,GAAA,CAAA;EAAA,UAAA,OACtBZ,OAAO,CAACmC,MAAM,CAACP,GAAG,CAAC;EAAA,QAAA,KAAA,CAAA;YAA5BS,SAAA,CAAAxB,CAAA;EACX;;YAEAO,eAAe,CAAC,UAAAa,OAAO,EAAI;cACzB,OAAA9D,QAAA,KACK8D,OAAO,EAAA;EACVM,cAAAA,IAAI,EAAE/D,SAAS;EACfwD,cAAAA,aAAa,EAAE;EAAK,aAAA,CAAA;EAExB,UAAA,CAAC,CAAC;YAAA,OAAAK,SAAA,CAAAvB,CAAA,CAAA,CAAA,EAEK;EACLyB,YAAAA,IAAI,EAAE/D,SAAS;EACfwD,YAAAA,aAAa,EAAE;aAChB,CAAA;EAAA;EAAA,IAAA,CAAA,EAAAI,QAAA,CAAA;EAAA,EAAA,CACF,IAAE,CAACjB,YAAY,EAAEG,QAAQ,CAAC,CAAC;EAE5B,EAAA,IAAMkB,UAAU,GAAGnD,iBAAW,CAAC,UAACkD,IAAI,EAAK;MACvCnB,eAAe,CAAC,UAACa,OAAO,EAAK;QAC3B,OAAA9D,QAAA,KACK8D,OAAO,EAAA;EACVM,QAAAA,IAAI,EAAJA;EAAI,OAAA,CAAA;EAER,IAAA,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC;EAEN,EAAA,IAAME,UAAU,GAAG,SAAbA,UAAUA,CAAInE,IAAI,EAAEW,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAK;EACrD,IAAA,OAAOJ,kBAAkB,CAACoC,YAAY,EAAEG,QAAQ,EAAEhD,IAAI,EAAEW,MAAM,EAAEC,MAAM,EAAEC,QAAQ,CAAC;IACnF,CAAC;EAED,EAAA,oBACExB,KAAA,CAAAO,aAAA,CAACwE,YAAO,CAACC,QAAQ,EAAA;EACfrD,IAAAA,KAAK,EAAE;EACL;EACA;EACA;QACAiD,IAAI,EAAEpB,YAAY,CAACoB,IAAI;EACvBC,MAAAA,UAAU,EAAVA,UAAU;QACVR,aAAa,EAAEb,YAAY,CAACa,aAAa;QACzChC,OAAO,EAAEsB,QAAQ,CAACtB,OAAO;EACzB;EACAwB,MAAAA,KAAK,EAALA,KAAK;EACLW,MAAAA,MAAM,EAANA,MAAM;EACNM,MAAAA,UAAU,EAAVA;EACF;EAAE,GAAA,EACDvB,QACe,CAAC;EAEvB,CAAC;;ACxFD,MAAM0B,UAAU,GAAG,SAAbA,UAAUA,CAAA3B,IAAA,EAAqB;EAAA,EAAA,IAAfC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EAC5B,EAAA,IAAMlD,OAAO,GAAG,OAAOO,MAAM,KAAK,WAAW,IAAIA,MAAM,CAACG,SAAS,GAAGH,MAAM,CAACG,SAAS,GAAG,EAAE;EAEzF,EAAA,oBACEf,KAAA,CAAAO,aAAA,CAAC8C,oBAAoB,EAAA;EAAChD,IAAAA,OAAO,EAAEA;EAAQ,GAAA,EACpCkD,QACmB,CAAC;EAE3B;;ACNA,MAAM2B,SAAS,GAAG,SAAZA,SAASA,CAAA5B,IAAA,EAA4B;EAAA,EAAA,IAAvBjD,OAAO,GAAAiD,IAAA,CAAPjD,OAAO;MAAEkD,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EAEnC,EAAA,oBACEvD,KAAA,CAAAO,aAAA,CAAC8C,oBAAoB,EAAA;MACjBhD,OAAO,EAAGA,OAAO,IAAI;EAAG,GAAA,EACzBkD,QACmB,CAAC;EAE3B;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "miolo-react",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.102",
|
|
4
4
|
"description": "React utils for miolo",
|
|
5
5
|
"author": "Donato Lorenzo <donato@afialapis.com>",
|
|
6
6
|
"contributors": [
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"files": [
|
|
27
|
-
"dist"
|
|
27
|
+
"dist",
|
|
28
|
+
"src"
|
|
28
29
|
],
|
|
29
30
|
"scripts": {
|
|
30
31
|
"reset": "rm -fr package-lock.json npm-lock.yaml dist/* && npm i",
|
|
@@ -32,13 +33,12 @@
|
|
|
32
33
|
"bundle": "npx xeira bundle --target=browser --source_index=./src/index.mjs --bundle_folder=./dist --bundle_name=miolo-react --bundle_node_polyfill=true --bundle_extension=umd,mjs",
|
|
33
34
|
"dist": "npm run clean && npm run bundle"
|
|
34
35
|
},
|
|
35
|
-
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"miolo-cli": "../miolo-cli"
|
|
38
|
-
},
|
|
38
|
+
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"react": "^
|
|
41
|
-
"react-dom": "^
|
|
40
|
+
"react": "^19.1.1",
|
|
41
|
+
"react-dom": "^19.1.1"
|
|
42
42
|
},
|
|
43
43
|
"peerDependenciesMeta": {
|
|
44
44
|
"react": {
|
|
@@ -49,11 +49,6 @@
|
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"xeira": "^
|
|
53
|
-
},
|
|
54
|
-
"eslintConfig": {
|
|
55
|
-
"extends": [
|
|
56
|
-
"../../node_modules/xeira/configs/eslint.react.mjs"
|
|
57
|
-
]
|
|
52
|
+
"xeira": "^2.0.0-beta.4"
|
|
58
53
|
}
|
|
59
54
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import MioloContextProvider from './context/MioloContextProvider.jsx'
|
|
3
|
+
|
|
4
|
+
const AppBrowser = ({ children }) => {
|
|
5
|
+
const context = typeof window !== 'undefined' && window.__CONTEXT ? window.__CONTEXT : {};
|
|
6
|
+
|
|
7
|
+
return (
|
|
8
|
+
<MioloContextProvider context={context}>
|
|
9
|
+
{children}
|
|
10
|
+
</MioloContextProvider>
|
|
11
|
+
)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default AppBrowser
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
import React from 'react'
|
|
3
|
+
import MioloContextProvider from './context/MioloContextProvider.jsx'
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
const AppServer = ({context, children}) => {
|
|
7
|
+
|
|
8
|
+
return (
|
|
9
|
+
<MioloContextProvider
|
|
10
|
+
context= {context || {}}>
|
|
11
|
+
{children}
|
|
12
|
+
</MioloContextProvider>
|
|
13
|
+
)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default AppServer
|
|
17
|
+
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import React , {useState, useEffect, useCallback} from 'react'
|
|
2
|
+
import Context from './MioloContext.mjs'
|
|
3
|
+
import { miolo_client } from 'miolo-cli'
|
|
4
|
+
import { useSsrDataOrReload } from '../ssr/useSsrDataOrReload.mjs'
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
const MioloContextProvider = ({context, children}) => {
|
|
8
|
+
const [innerContext, setInnerContext]= useState(context)
|
|
9
|
+
const [mioloObj, setMioloObj]= useState(miolo_client(context))
|
|
10
|
+
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
setInnerContext(context)
|
|
13
|
+
setMioloObj(miolo_client(context))
|
|
14
|
+
}, [context])
|
|
15
|
+
|
|
16
|
+
const login = useCallback(async (credentials) => {
|
|
17
|
+
const { fetcher } = mioloObj
|
|
18
|
+
const { config } = innerContext
|
|
19
|
+
|
|
20
|
+
const url = config.login_url || '/login'
|
|
21
|
+
const resp = await fetcher.login(url, credentials)
|
|
22
|
+
|
|
23
|
+
if (resp?.data) {
|
|
24
|
+
if (resp?.data?.authenticated) {
|
|
25
|
+
setInnerContext(current => {
|
|
26
|
+
return {
|
|
27
|
+
...current,
|
|
28
|
+
...resp?.data,
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return resp?.data
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return {}
|
|
37
|
+
}, [innerContext, mioloObj])
|
|
38
|
+
|
|
39
|
+
const logout = useCallback(async () => {
|
|
40
|
+
const { fetcher } = mioloObj
|
|
41
|
+
const { config } = innerContext
|
|
42
|
+
|
|
43
|
+
const url = config.logout_url || '/logout'
|
|
44
|
+
const _resp = await fetcher.logout(url)
|
|
45
|
+
// resp.redirected= true
|
|
46
|
+
|
|
47
|
+
setInnerContext(current => {
|
|
48
|
+
return {
|
|
49
|
+
...current,
|
|
50
|
+
user: undefined,
|
|
51
|
+
authenticated: false,
|
|
52
|
+
}
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
user: undefined,
|
|
57
|
+
authenticated: false,
|
|
58
|
+
}
|
|
59
|
+
}, [innerContext, mioloObj])
|
|
60
|
+
|
|
61
|
+
const updateUser = useCallback((user) => {
|
|
62
|
+
setInnerContext((current) => {
|
|
63
|
+
return {
|
|
64
|
+
...current,
|
|
65
|
+
user,
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
}, [])
|
|
69
|
+
|
|
70
|
+
const useSsrData = (name, defval, loader, modifier) => {
|
|
71
|
+
return useSsrDataOrReload(innerContext, mioloObj, name, defval, loader, modifier)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return (
|
|
75
|
+
<Context.Provider
|
|
76
|
+
value={{
|
|
77
|
+
//context: innerContext,
|
|
78
|
+
//setContext: setInnerContext,
|
|
79
|
+
//miolo: mioloObj,
|
|
80
|
+
user: innerContext.user,
|
|
81
|
+
updateUser,
|
|
82
|
+
authenticated: innerContext.authenticated,
|
|
83
|
+
fetcher: mioloObj.fetcher,
|
|
84
|
+
//socket: mioloObj.socket,
|
|
85
|
+
login,
|
|
86
|
+
logout,
|
|
87
|
+
useSsrData
|
|
88
|
+
}}>
|
|
89
|
+
{children}
|
|
90
|
+
</Context.Provider>
|
|
91
|
+
)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
export default MioloContextProvider
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React, {useContext} from 'react'
|
|
2
|
+
import MioloContext from './MioloContext.mjs'
|
|
3
|
+
|
|
4
|
+
/* eslint react/display-name:0 */
|
|
5
|
+
const withMioloContext = (BaseComponent) => (props) => {
|
|
6
|
+
const context = useContext(MioloContext)
|
|
7
|
+
|
|
8
|
+
return (
|
|
9
|
+
<BaseComponent {...props}
|
|
10
|
+
{...context}/>
|
|
11
|
+
);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
export default withMioloContext
|
package/src/index.mjs
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import withMioloContext from './context/withMioloContext.jsx'
|
|
2
|
+
import useMioloContext from './context/useMioloContext.jsx'
|
|
3
|
+
|
|
4
|
+
import AppBrowser from './AppBrowser.jsx'
|
|
5
|
+
import AppServer from './AppServer.jsx'
|
|
6
|
+
|
|
7
|
+
export {withMioloContext, useMioloContext, AppBrowser, AppServer}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
const _getDataFromWindow = (name) => {
|
|
3
|
+
try {
|
|
4
|
+
if (window != undefined) {
|
|
5
|
+
const ssr_data= window.__CONTEXT.ssr_data
|
|
6
|
+
|
|
7
|
+
if (ssr_data!=undefined) {
|
|
8
|
+
if (ssr_data[name]!=undefined) {
|
|
9
|
+
return ssr_data[name]
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
} catch(e) {}
|
|
14
|
+
|
|
15
|
+
return undefined
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const getSsrDataFromContext = (context, name) => {
|
|
19
|
+
let data= undefined
|
|
20
|
+
|
|
21
|
+
if (context?.ssr_data != undefined && context?.ssr_data[name]!=undefined) {
|
|
22
|
+
data= context.ssr_data[name]
|
|
23
|
+
} else {
|
|
24
|
+
const wdata= _getDataFromWindow(name)
|
|
25
|
+
if (wdata != undefined) {
|
|
26
|
+
data= wdata
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return data
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default getSsrDataFromContext
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import {useState, useCallback, useEffect} from 'react'
|
|
2
|
+
import getSsrDataFromContext from './getSsrDataFromContext.mjs'
|
|
3
|
+
|
|
4
|
+
const useSsrDataOrReload = (context, miolo, name, defval, loader, modifier) => {
|
|
5
|
+
|
|
6
|
+
const _maybeModify = useCallback((value) => {
|
|
7
|
+
return modifier==undefined ? value : modifier(value)
|
|
8
|
+
}, [modifier])
|
|
9
|
+
|
|
10
|
+
const ssrDataFromContext = getSsrDataFromContext(context, name)
|
|
11
|
+
const [ssrData, setSsrData] = useState(_maybeModify(
|
|
12
|
+
ssrDataFromContext != undefined
|
|
13
|
+
? ssrDataFromContext : defval))
|
|
14
|
+
const [needToRefresh, setNeedToRefresh] = useState(ssrDataFromContext == undefined)
|
|
15
|
+
|
|
16
|
+
const refreshSsrData = useCallback(() => {
|
|
17
|
+
if (loader == undefined) {
|
|
18
|
+
return
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const {fetcher} = miolo
|
|
22
|
+
|
|
23
|
+
async function fetchData() {
|
|
24
|
+
let nSsrData = await loader(context, fetcher)
|
|
25
|
+
setSsrData(_maybeModify(nSsrData))
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
fetchData()
|
|
29
|
+
}, [context, miolo, loader, _maybeModify])
|
|
30
|
+
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
try {
|
|
33
|
+
if (needToRefresh) {
|
|
34
|
+
setNeedToRefresh(false)
|
|
35
|
+
refreshSsrData()
|
|
36
|
+
}
|
|
37
|
+
} catch(e) {}
|
|
38
|
+
}, [needToRefresh, refreshSsrData])
|
|
39
|
+
|
|
40
|
+
return [ssrData, (data) => setSsrData(_maybeModify(data)), refreshSsrData]
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export {useSsrDataOrReload}
|