/** * 「保存后回列表,列表要是新的」这件事的判定逻辑。 * * 为什么需要它:`pubGoBack()` 只是 push 回父路径再关掉表单页的标签, * 而列表页在 KeepAlive 缓存里,push 回去是**直接复原缓存的那棵树,不会重新拉数据**—— * 用户刚保存的记录不在列表里,于是以为没存上,再存一遍。全仓有 196 处这样的返回。 * * 判定单独拆出来是因为它有三个都会出错的边界:缓存页不活跃时不能刷、同一个 refresh 值不能重复刷、 * 挂载时 URL 上已有的 refresh 值不算(那是别人触发的,自己刚加载完,再刷一次纯属浪费)。 * * @author nokecy */ export type RefreshDecisionInput = { /** 当前页面是否是活跃页面。KeepAlive 缓存的页面 useEffect 照样在跑,不判这个会串台 */ isActive: boolean; /** URL 上的 refresh 值 */ refresh?: string | null; /** 上一次已经响应过的 refresh 值 */ lastHandled?: string | null; }; export declare const shouldRefresh: ({ isActive, refresh, lastHandled }: RefreshDecisionInput) => boolean; /** 从 location.search 里取 refresh。 */ export declare const readRefreshToken: (search?: string | null) => string | null; /** 给列表路径带上刷新标记;已有 refresh 的会被替换而不是叠加。 */ export declare const withRefreshToken: (listPath: string, token: string | number) => string;