The 35 files behind twelve public pages, seven admin views, two player views and three core-page extensions, ported onto `window.__rg`. Every one of them imports exactly the seven kit members plus `lib/format.js`, which is the finding §2.7.1 predicted and this confirms. `client/src/core.js` is the port mechanism, and unlike the server's it is a plain read: `window.__rg` is published before any module chunk evaluates, so there is no gap to defer around and a ported component keeps its ordinary import shape. `client/src/api.js` rebuilds the UO namespaces over the request primitive — same URLs, because §1.2 freezes the API surface. SPA paths changed and API paths did not. `/site/shard` is `/uo/shard`, and the admin paths lost their now-redundant `shard-` prefixes (`/admin/uo/ops`), a clean break being the only moment that is free. `shim/rg.js` becomes the single reader of the global, so the "core did not publish its dependencies" message is reachable from whichever module the bundler happens to touch first rather than from whichever one is imported first — a guarantee that used to last until someone sorted the imports. Co-Authored-By: Claude <noreply@anthropic.com>
25 lines
1020 B
JavaScript
25 lines
1020 B
JavaScript
// ── Core's fill for the `site.footer.status` extension slot ────────────────
|
|
//
|
|
// Phase 3, slice 2 of docs/website/MODULE_SYSTEM.md §2.7.1; the contract is
|
|
// MODULE_API.md §3.7.
|
|
//
|
|
// This is the whole of what used to be four lines inline in SiteFooter.jsx, and
|
|
// it is a file now for one reason: `/uo/shard` is a UO page, so the link goes
|
|
// when the client half goes, and core should be deleting a registration rather
|
|
// than editing its footer under extraction pressure.
|
|
//
|
|
// Note what core kept and what it handed over. Core owns the position in the row
|
|
// and the separator around it, and passes `linkStyle` so the row stays visually
|
|
// one row. The label, the destination, and the decision to render at all are
|
|
// this file's — which is exactly the division a module inherits.
|
|
|
|
import { Link } from 'react-router-dom'
|
|
|
|
export default function ShardStatusLink({ linkStyle }) {
|
|
return (
|
|
<Link to="/uo/shard" style={linkStyle}>
|
|
Shard Status
|
|
</Link>
|
|
)
|
|
}
|