Files
wehub-resource-sync 9b395f5cc3
E2E Headed Chrome / e2e-headed (macos-15) (push) Has been cancelled
E2E Headed Chrome / e2e-headed (ubuntu-latest) (push) Has been cancelled
E2E Headed Chrome / e2e-headed (windows-latest) (push) Has been cancelled
CI / build (macos-latest) (push) Has been cancelled
CI / build (ubuntu-latest) (push) Has been cancelled
CI / build (windows-latest) (push) Has been cancelled
CI / unit-test (push) Has been cancelled
CI / bun-test (push) Has been cancelled
CI / adapter-test (push) Has been cancelled
CI / smoke-test (macos-latest) (push) Has been cancelled
CI / smoke-test (ubuntu-latest) (push) Has been cancelled
Security Audit / audit (push) Has been cancelled
Build Chrome Extension / build (push) Has been cancelled
Trigger Website Rebuild (Docs Updated) / dispatch (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:39:48 +08:00

26 lines
794 B
JavaScript

/**
* 即刻适配器公共定义
*
* JikePost 接口和 getPostData 函数在 feed.ts / search.ts 中复用,
* 统一维护于此文件避免重复。
*/
/**
* 注入浏览器 evaluate 的 JS 函数字符串。
* 从 React fiber 树中向上最多走 10 层,找到含 id 字段的 props.data。
*/
export const getPostDataJs = `
function getPostData(element) {
for (const key of Object.keys(element)) {
if (key.startsWith('__reactFiber$') || key.startsWith('__reactInternalInstance$')) {
let fiber = element[key];
for (let i = 0; i < 10 && fiber; i++) {
const props = fiber.memoizedProps || fiber.pendingProps;
if (props && props.data && props.data.id) return props.data;
fiber = fiber.return;
}
}
}
return null;
}
`.trim();