UNPKG

dumi-theme-lobehub

Version:

dumi-theme-lobehub is a documentation site theme package designed for dumi2. It provides a more beautiful and user-friendly development and reading experience based on @lobehub/ui

33 lines (32 loc) 1.02 kB
import { getRouteMetaById, useMatchedRoute } from 'dumi'; import useSWR from 'swr'; import { useStoreApi } from "../../store/useSiteStore"; var EMPTY_META = { frontmatter: {}, texts: [], toc: [] }; // 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) { for (var _i = 0, _Object$keys = Object.keys(matched.meta); _i < _Object$keys.length; _i++) { var _ref, _ref$key; var key = _Object$keys[_i]; (_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) }); } }); };