@easyx.ai/dumi-theme-easyxai
Version:
@easyx.ai/dumi-theme-easyxai 是为 dumi2 打造的一款文档站主题包,提供了更加美观、易用的研发与阅读体验
32 lines (31 loc) • 948 B
JavaScript
import { getRouteMetaById, useMatchedRoute } from 'dumi';
import useSWR from 'swr';
import { useStoreApi } from "../../store/useSiteStore";
var EMPTY_META = {
frontmatter: {},
toc: [],
texts: []
};
// https://github.com/umijs/dumi/pull/2165
export var useRouteMeta = function useRouteMeta() {
var storeApi = useStoreApi();
var matched = useMatchedRoute();
var merge = function merge() {
var meta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_META;
if (matched.meta) {
Object.keys(matched.meta).forEach(function (key) {
var _ref, _ref$key;
(_ref$key = (_ref = meta)[key]) !== null && _ref$key !== void 0 ? _ref$key : _ref[key] = matched.meta[key];
});
}
return meta;
};
useSWR(matched.id, getRouteMetaById, {
fallback: EMPTY_META,
onSuccess: function onSuccess(meta) {
storeApi.setState({
routeMeta: merge(meta)
});
}
});
};