show subrule sync time
This commit is contained in:
@@ -32,10 +32,23 @@ export function useSubRules() {
|
||||
[list, updateSetting]
|
||||
);
|
||||
|
||||
const updateSub = useCallback(
|
||||
async (url, obj) => {
|
||||
const subrulesList = [...list];
|
||||
subrulesList.forEach((item) => {
|
||||
if (item.url === url) {
|
||||
Object.assign(item, obj);
|
||||
}
|
||||
});
|
||||
await updateSetting({ subrulesList });
|
||||
},
|
||||
[list, updateSetting]
|
||||
);
|
||||
|
||||
const addSub = useCallback(
|
||||
async (url) => {
|
||||
const subrulesList = [...list];
|
||||
subrulesList.push({ url, selected: false });
|
||||
subrulesList.push({ url, selected: false, syncAt: Date.now() });
|
||||
await updateSetting({ subrulesList });
|
||||
},
|
||||
[list, updateSetting]
|
||||
@@ -70,6 +83,7 @@ export function useSubRules() {
|
||||
return {
|
||||
subList: list,
|
||||
selectSub,
|
||||
updateSub,
|
||||
addSub,
|
||||
delSub,
|
||||
selectedSub,
|
||||
|
||||
@@ -4,6 +4,7 @@ import {
|
||||
updateSync,
|
||||
setSubRules,
|
||||
getSubRules,
|
||||
updateSetting,
|
||||
} from "./storage";
|
||||
import { apiFetchRules } from "../apis";
|
||||
import { checkRules } from "./rules";
|
||||
@@ -54,6 +55,10 @@ export const trySyncAllSubRules = async ({ subrulesList }, isBg = false) => {
|
||||
await syncAllSubRules(subrulesList, isBg);
|
||||
await updateSync({ subRulesSyncAt: now });
|
||||
}
|
||||
subrulesList.forEach((item) => {
|
||||
item.syncAt = now;
|
||||
});
|
||||
await updateSetting({ subrulesList });
|
||||
} catch (err) {
|
||||
console.log("[try sync all subrules]", err);
|
||||
}
|
||||
|
||||
@@ -619,7 +619,15 @@ function UserRules({ subRules }) {
|
||||
);
|
||||
}
|
||||
|
||||
function SubRulesItem({ index, url, selectedUrl, delSub, setSelectedRules }) {
|
||||
function SubRulesItem({
|
||||
index,
|
||||
url,
|
||||
syncAt,
|
||||
selectedUrl,
|
||||
delSub,
|
||||
updateSub,
|
||||
setSelectedRules,
|
||||
}) {
|
||||
const [loading, setLoading] = useState(false);
|
||||
|
||||
const handleDel = async () => {
|
||||
@@ -638,6 +646,7 @@ function SubRulesItem({ index, url, selectedUrl, delSub, setSelectedRules }) {
|
||||
if (rules.length > 0 && url === selectedUrl) {
|
||||
setSelectedRules(rules);
|
||||
}
|
||||
await updateSub(url, { syncAt: Date.now() });
|
||||
} catch (err) {
|
||||
console.log("[sync sub rules]", err);
|
||||
} finally {
|
||||
@@ -649,6 +658,12 @@ function SubRulesItem({ index, url, selectedUrl, delSub, setSelectedRules }) {
|
||||
<Stack direction="row" alignItems="center" spacing={2}>
|
||||
<FormControlLabel value={url} control={<Radio />} label={url} />
|
||||
|
||||
{syncAt && (
|
||||
<span style={{ marginLeft: "0.5em", opacity: 0.6 }}>
|
||||
[{new Date(syncAt).toLocaleString()}]
|
||||
</span>
|
||||
)}
|
||||
|
||||
{loading ? (
|
||||
<CircularProgress size={16} />
|
||||
) : (
|
||||
@@ -773,6 +788,7 @@ function SubRules({ subRules }) {
|
||||
const {
|
||||
subList,
|
||||
selectSub,
|
||||
updateSub,
|
||||
addSub,
|
||||
delSub,
|
||||
selectedUrl,
|
||||
@@ -795,9 +811,11 @@ function SubRules({ subRules }) {
|
||||
<SubRulesItem
|
||||
key={item.url}
|
||||
url={item.url}
|
||||
syncAt={item.syncAt}
|
||||
index={index}
|
||||
selectedUrl={selectedUrl}
|
||||
delSub={delSub}
|
||||
updateSub={updateSub}
|
||||
setSelectedRules={setSelectedRules}
|
||||
/>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user