fix(web): clean up wasm32 build warnings and wire /play route to Bevy canvas
Build and Deploy / build-and-push (push) Failing after 44s
Build and Deploy / build-and-push (push) Failing after 44s
- solitaire_data/sync_client.rs: fix SyncPayload/SyncResponse import split (SyncResponse is needed by LocalOnlyProvider which compiles on wasm32) - solitaire_engine/assets/sources.rs: cfg-gate AssetApp/AssetSourceBuilder imports (only used in the non-wasm FileAssetReader block) - solitaire_engine/auto_complete_plugin.rs: cfg-gate AUTO_COMPLETE_CHIME_VOLUME - solitaire_engine/daily_challenge_plugin.rs: cfg-gate Task/AsyncComputeTaskPool imports and DailyChallengeTask struct (server fetch systems are non-wasm only) - solitaire_engine/resources.rs: cfg-gate std::sync::Arc (TokioRuntimeResource is non-wasm only) - solitaire_engine/settings_plugin.rs: cfg-gate ScanThemes variant, pill_button, and their match arms; fix refresh_registry import placement - solitaire_server/src/lib.rs: point /play route at play.html (Bevy canvas); keep /play-classic serving game.html during transition period - build_wasm.sh: add --no-typescript to wasm-bindgen call for canvas build - solitaire_server/web/pkg: add canvas.js + canvas_bg.wasm build artifacts wasm32 build and native clippy --workspace -D warnings both clean. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -13,9 +13,11 @@
|
||||
|
||||
use bevy::input::ButtonInput;
|
||||
use bevy::prelude::*;
|
||||
use bevy::tasks::{AsyncComputeTaskPool, Task, futures_lite::future};
|
||||
use chrono::{DateTime, Duration, Local, NaiveDate, Utc};
|
||||
use solitaire_data::{daily_seed_for, save_progress_to};
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
use bevy::tasks::{AsyncComputeTaskPool, Task, futures_lite::future};
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
use solitaire_sync::ChallengeGoal;
|
||||
|
||||
use crate::events::{
|
||||
@@ -78,8 +80,13 @@ pub struct DailyChallengeCompletedEvent {
|
||||
/// Holds the in-flight server challenge fetch so the result can be polled
|
||||
/// each frame without blocking the main thread.
|
||||
#[derive(Resource, Default)]
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
struct DailyChallengeTask(Option<Task<Option<ChallengeGoal>>>);
|
||||
|
||||
#[derive(Resource, Default)]
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
struct DailyChallengeTask;
|
||||
|
||||
/// Tracks which `DailyChallengeResource::date` the expiry-warning toast has
|
||||
/// already fired for, so the toast spawns at most once per day.
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user