use crate::filesystem::Filesystem;
const LESSONS_FILE: &str = ".lh_lessons.txt";
pub(crate) async fn load_local() -> Option<String> {
let fs = super::shared_opfs();
let bytes = fs.read(LESSONS_FILE).await.ok()?;
let s = String::from_utf8(bytes).ok()?.trim().to_string();
if s.is_empty() {
None
} else {
Some(s)
}
}
pub(crate) async fn save(content: &str) -> Result<(), String> {
let fs = super::shared_opfs();
fs.write_atomic(LESSONS_FILE, content.trim().as_bytes())
.await
.map_err(|e| e.to_string())
}
pub(crate) async fn load() -> Option<String> {
if let Some(local) = load_local().await {
return Some(local);
}
let name = super::tenant::current_name()?;
let id = super::registry::id_of_name(&name)
.await
.ok()
.filter(|&id| id != 0)?;
super::registry::lessons_of(id).await.ok().flatten()
}