Second frontend, written in Next.JS + Typescript.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1 lines
5.6 KiB

{"ast":null,"code":"var _jsxFileName = \"/home/gisle/projects/react/rpdata-frontend2/hooks/LogListContext.tsx\";\nvar __jsx = React.createElement;\nimport React, { useState, useCallback, useEffect } from \"react\";\nimport { listLogs } from \"../lib/rpdata/logs\";\nimport gqlBrowserClient from \"../lib/client/graphql\";\nconst LogListContext = React.createContext({\n filter: {},\n error: null,\n headers: [],\n loading: Boolean(),\n updateFilter: filter => {},\n refresh: () => {}\n});\nexport function LogListContextProvider(props) {\n const {\n 0: dirty,\n 1: setDirty\n } = useState(false);\n const {\n 0: loading,\n 1: setLoading\n } = useState(false);\n const {\n 0: error,\n 1: setError\n } = useState(null);\n const {\n 0: filter,\n 1: setFilter\n } = useState(props.initialFilter);\n const {\n 0: headers,\n 1: setHeaders\n } = useState(props.initialHeader);\n const updateFilter = useCallback(filter => {\n setFilter(filter);\n setDirty(true);\n }, []);\n const refresh = useCallback(() => {\n setDirty(true);\n }, []);\n useEffect(() => {\n if (dirty && !loading) {\n return;\n }\n\n setLoading(true);\n setDirty(false);\n listLogs(gqlBrowserClient, filter).then(headers => {\n setHeaders(headers);\n }).catch(err => {\n setError(err);\n });\n }, [filter, dirty, loading]);\n return __jsx(LogListContext.Provider, {\n value: {\n loading,\n filter,\n headers,\n error,\n updateFilter,\n refresh\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 57,\n columnNumber: 5\n }\n }, props.children);\n}\nexport default LogListContext;","map":{"version":3,"sources":["/home/gisle/projects/react/rpdata-frontend2/hooks/LogListContext.tsx"],"names":["React","useState","useCallback","useEffect","listLogs","gqlBrowserClient","LogListContext","createContext","filter","error","headers","loading","Boolean","updateFilter","refresh","LogListContextProvider","props","dirty","setDirty","setLoading","setError","setFilter","initialFilter","setHeaders","initialHeader","then","catch","err","children"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,WAA1B,EAAuCC,SAAvC,QAAwD,OAAxD;AACA,SAA+BC,QAA/B,QAA+C,oBAA/C;AACA,OAAOC,gBAAP,MAA6B,uBAA7B;AAYA,MAAMC,cAAiD,GAAGN,KAAK,CAACO,aAAN,CAAoB;AAC5EC,EAAAA,MAAM,EAAC,EADqE;AACjEC,EAAAA,KAAK,EAAE,IAD0D;AACpDC,EAAAA,OAAO,EAAC,EAD4C;AACxCC,EAAAA,OAAO,EAACC,OAAO,EADyB;AACrBC,EAAAA,YAAY,EAAEL,MAAD,IAAU,CAAE,CADJ;AACKM,EAAAA,OAAO,EAAC,MAAI,CAAE;AADnB,CAApB,CAA1D;AAUA,OAAO,SAASC,sBAAT,CAAgCC,KAAhC,EAAoE;AACzE,QAAM;AAAA,OAACC,KAAD;AAAA,OAAQC;AAAR,MAAoBjB,QAAQ,CAAC,KAAD,CAAlC;AACA,QAAM;AAAA,OAACU,OAAD;AAAA,OAAUQ;AAAV,MAAwBlB,QAAQ,CAAC,KAAD,CAAtC;AACA,QAAM;AAAA,OAACQ,KAAD;AAAA,OAAQW;AAAR,MAAoBnB,QAAQ,CAAQ,IAAR,CAAlC;AACA,QAAM;AAAA,OAACO,MAAD;AAAA,OAASa;AAAT,MAAsBpB,QAAQ,CAAYe,KAAK,CAACM,aAAlB,CAApC;AACA,QAAM;AAAA,OAACZ,OAAD;AAAA,OAAUa;AAAV,MAAwBtB,QAAQ,CAAce,KAAK,CAACQ,aAApB,CAAtC;AAEA,QAAMX,YAAY,GAAGX,WAAW,CAAEM,MAAD,IAAuB;AACtDa,IAAAA,SAAS,CAACb,MAAD,CAAT;AACAU,IAAAA,QAAQ,CAAC,IAAD,CAAR;AACD,GAH+B,EAG7B,EAH6B,CAAhC;AAKA,QAAMJ,OAAO,GAAGZ,WAAW,CAAC,MAAM;AAChCgB,IAAAA,QAAQ,CAAC,IAAD,CAAR;AACD,GAF0B,EAExB,EAFwB,CAA3B;AAIAf,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIc,KAAK,IAAI,CAACN,OAAd,EAAuB;AACrB;AACD;;AAEDQ,IAAAA,UAAU,CAAC,IAAD,CAAV;AACAD,IAAAA,QAAQ,CAAC,KAAD,CAAR;AAEAd,IAAAA,QAAQ,CAACC,gBAAD,EAAmBG,MAAnB,CAAR,CAAmCiB,IAAnC,CAAwCf,OAAO,IAAI;AACjDa,MAAAA,UAAU,CAACb,OAAD,CAAV;AACD,KAFD,EAEGgB,KAFH,CAESC,GAAG,IAAI;AACdP,MAAAA,QAAQ,CAACO,GAAD,CAAR;AACD,KAJD;AAKD,GAbQ,EAaN,CAACnB,MAAD,EAASS,KAAT,EAAgBN,OAAhB,CAbM,CAAT;AAeA,SACE,MAAC,cAAD,CAAgB,QAAhB;AAAyB,IAAA,KAAK,EAAE;AAACA,MAAAA,OAAD;AAAUH,MAAAA,MAAV;AAAkBE,MAAAA,OAAlB;AAA2BD,MAAAA,KAA3B;AAAkCI,MAAAA,YAAlC;AAAgDC,MAAAA;AAAhD,KAAhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGE,KAAK,CAACY,QADT,CADF;AAKD;AAED,eAAetB,cAAf","sourcesContent":["import React, { useState, useCallback, useEffect } from \"react\";\nimport { LogFilter, LogHeader, listLogs } from \"../lib/rpdata/logs\";\nimport gqlBrowserClient from \"../lib/client/graphql\";\n\nexport interface LogListContextData {\n filter: LogFilter\n headers: LogHeader[]\n loading: boolean\n error: Error | null\n\n updateFilter: (filter: LogFilter) => void\n refresh: () => void\n}\n\nconst LogListContext: React.Context<LogListContextData> = React.createContext({\n filter:{}, error: null, headers:[], loading:Boolean(), updateFilter:(filter)=>{},refresh:()=>{}\n});\n\ninterface LogListContextProviderProps {\n initialFilter: LogFilter\n initialHeader: LogHeader[]\n children: any\n}\n\nexport function LogListContextProvider(props: LogListContextProviderProps) {\n const [dirty, setDirty] = useState(false);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<Error>(null);\n const [filter, setFilter] = useState<LogFilter>(props.initialFilter);\n const [headers, setHeaders] = useState<LogHeader[]>(props.initialHeader);\n\n const updateFilter = useCallback((filter: LogFilter) => {\n setFilter(filter);\n setDirty(true);\n }, []);\n\n const refresh = useCallback(() => {\n setDirty(true);\n }, []);\n\n useEffect(() => {\n if (dirty && !loading) {\n return;\n }\n\n setLoading(true);\n setDirty(false);\n\n listLogs(gqlBrowserClient, filter).then(headers => {\n setHeaders(headers)\n }).catch(err => {\n setError(err)\n })\n }, [filter, dirty, loading])\n\n return (\n <LogListContext.Provider value={{loading, filter, headers, error, updateFilter, refresh}}>\n {props.children}\n </LogListContext.Provider>\n )\n}\n\nexport default LogListContext;"]},"metadata":{},"sourceType":"module"}