The Tauri webview's origin is the Vite dev server (port 1430), not
the AppView (port 2584). A relative `fetch('/api/profile/…')`
resolves against Vite, which has no proxy configured, so the
request lands on Vite's 404 HTML page and `response.json()` then
throws `SyntaxError: The string did not match the expected
pattern.` The error surfaced as `err: SyntaxError…` under the
banner of the redesigned ProfileView.
Fix: expose the AppView base URL the Tauri shell was started with
as a sync `get_api_urls` Tauri command. The Rust side reads the
URL from `MAARCADETWEET_APPVIEW_URL` (default
`http://127.0.0.1:2584`) at startup and stores it on `AppState`
so the command doesn't need to re-read the env. The frontend
exposes a cached `getAppviewUrl()` helper; ProfileView's
`load()` uses it to build an absolute fetch URL.
The relative-path bug also affected the previous UserProfileView,
but it never errored loudly enough for the user to notice — the
new X-style layout made the err block visible.
11 lines
469 B
Rust
11 lines
469 B
Rust
pub struct AppState {
|
|
pub pds: crate::pds_client::PdsHttpClient,
|
|
pub appview: crate::appview_client::AppViewClient,
|
|
/// Base URL of the AppView service (`http://host:port`, no
|
|
/// trailing slash). Stored verbatim so the frontend can build
|
|
/// absolute URLs for fetch calls — a relative `/api/profile/…`
|
|
/// would resolve against the Vite dev origin, not the AppView.
|
|
pub appview_url: String,
|
|
pub store: crate::store::SessionStore,
|
|
}
|