chinese localization!!
This commit is contained in:
@@ -4,13 +4,7 @@ use tauri::{AppHandle, State};
|
||||
use tauri_specta::Event;
|
||||
|
||||
use crate::db::{self, AppDatabase};
|
||||
|
||||
const SETTINGS_ID: i64 = 1;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, sqlx::FromRow)]
|
||||
pub struct AppSettings {
|
||||
pub onboarding_done: bool,
|
||||
}
|
||||
use crate::settings::AppSettings;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Type, Event)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
@@ -32,30 +26,16 @@ impl OnboardingStatus {
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn get(database: &AppDatabase) -> Result<AppSettings, sqlx::Error> {
|
||||
sqlx::query_as::<_, AppSettings>("SELECT onboarding_done FROM app_settings WHERE id = ?1")
|
||||
.bind(SETTINGS_ID)
|
||||
.fetch_one(database.pool())
|
||||
.await
|
||||
}
|
||||
|
||||
async fn set_onboarding_done(
|
||||
database: &AppDatabase,
|
||||
onboarding_done: bool,
|
||||
) -> Result<(), sqlx::Error> {
|
||||
sqlx::query("UPDATE app_settings SET onboarding_done = ?1 WHERE id = ?2")
|
||||
.bind(onboarding_done)
|
||||
.bind(SETTINGS_ID)
|
||||
.execute(database.pool())
|
||||
.await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub(crate) async fn emit_status(
|
||||
handle: &AppHandle,
|
||||
database: &AppDatabase,
|
||||
) -> Result<OnboardingStatus, String> {
|
||||
let status = OnboardingStatus::new(handle, get(database).await.map_err(db::command_error)?);
|
||||
let status = OnboardingStatus::new(
|
||||
handle,
|
||||
crate::settings::get(database)
|
||||
.await
|
||||
.map_err(db::command_error)?,
|
||||
);
|
||||
status.clone().emit(handle).map_err(db::command_error)?;
|
||||
Ok(status)
|
||||
}
|
||||
@@ -66,7 +46,9 @@ pub async fn get_onboarding_status(
|
||||
handle: AppHandle,
|
||||
database: State<'_, AppDatabase>,
|
||||
) -> Result<OnboardingStatus, String> {
|
||||
let settings = get(&database).await.map_err(db::command_error)?;
|
||||
let settings = crate::settings::get(&database)
|
||||
.await
|
||||
.map_err(db::command_error)?;
|
||||
Ok(OnboardingStatus::new(&handle, settings))
|
||||
}
|
||||
|
||||
@@ -80,7 +62,7 @@ pub async fn complete_onboarding(
|
||||
return Err("Accessibility access must be granted before setup can finish.".to_owned());
|
||||
}
|
||||
|
||||
set_onboarding_done(&database, true)
|
||||
crate::settings::set_onboarding_done(&database, true)
|
||||
.await
|
||||
.map_err(db::command_error)?;
|
||||
emit_status(&handle, &database).await?;
|
||||
@@ -111,17 +93,21 @@ mod tests {
|
||||
async fn onboarding_completion_is_persisted() {
|
||||
let database = database().await;
|
||||
assert_eq!(
|
||||
get(&database).await.unwrap(),
|
||||
crate::settings::get(&database).await.unwrap(),
|
||||
AppSettings {
|
||||
onboarding_done: false,
|
||||
locale_preference: "system".to_owned(),
|
||||
}
|
||||
);
|
||||
|
||||
set_onboarding_done(&database, true).await.unwrap();
|
||||
crate::settings::set_onboarding_done(&database, true)
|
||||
.await
|
||||
.unwrap();
|
||||
assert_eq!(
|
||||
get(&database).await.unwrap(),
|
||||
crate::settings::get(&database).await.unwrap(),
|
||||
AppSettings {
|
||||
onboarding_done: true,
|
||||
locale_preference: "system".to_owned(),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user