1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import { getImageBases } from '@/services/common/api';
import React, { useEffect, useState } from 'react';
const UploadContext = React.createContext();
const sleep = time =>
new Promise((res, rej) => {
setTimeout(() => {
res();
}, time);
});
const PictureWallProvider = props => {
const { children, ...rest } = props;
const [imgBed, setImgBed] = useState([]);
const update = () =>
getImageBases('icon,androidMenu,menuNew,logo,CityTemp')
.then(res => {
if (res.code === 0) {
const { data } = res;
let arr = data.filter(item => item.moduleName !== 'menu') || [];
data.forEach(item => {
if (item.baseUrl && item.moduleName !== 'CityTemp') {
if (!localStorage.getItem('pd2-baseUrl')) {
localStorage.setItem('pd2-baseUrl', item.baseUrl);
}
}
});
setImgBed(arr);
}
})
.catch(err => {
// eslint-disable-next-line no-console
console.error(err);
return sleep(10000).then(update);
});
useEffect(() => {
update();
}, []);
return (
<UploadContext.Provider value={{ imgBed, update }}>
{children}
</UploadContext.Provider>
);
};
export { UploadContext as default, PictureWallProvider };