feat: consolidate local-first mnote web runtime
This commit is contained in:
@@ -27,6 +27,9 @@ pub fn HomePage(
|
||||
/// 当前选中的页面标题(可选)
|
||||
#[prop(optional)]
|
||||
active_page_title: Option<String>,
|
||||
/// 导航页主体 HTML(可选)
|
||||
#[prop(optional)]
|
||||
navigation_html: String,
|
||||
/// 是否显示管理员授权入口
|
||||
#[prop(optional)]
|
||||
show_admin_access_policy: bool,
|
||||
@@ -37,6 +40,9 @@ pub fn HomePage(
|
||||
.filter(|value| !value.is_empty())
|
||||
.unwrap_or_else(|| "个人".to_string());
|
||||
let has_active_page = !active_page_id.trim().is_empty();
|
||||
let navigation_html = Some(navigation_html)
|
||||
.map(|value| value.trim().to_string())
|
||||
.filter(|value| !value.is_empty());
|
||||
let workspace_id = workspace_id
|
||||
.map(|value| value.trim().to_string())
|
||||
.filter(|value| !value.is_empty());
|
||||
@@ -63,6 +69,57 @@ pub fn HomePage(
|
||||
</section>
|
||||
</main>
|
||||
}.into_any()
|
||||
} else if let Some(navigation_html) = navigation_html.clone() {
|
||||
view! {
|
||||
<main
|
||||
class="document-workspace mnote-navigation-page-workspace"
|
||||
data-testid="mnote-document-workspace"
|
||||
data-has-secondary-pane="false"
|
||||
data-workspace-id={workspace_id.clone().unwrap_or_default()}
|
||||
>
|
||||
<section class="document-main-editor-group" data-testid="mnote-main-editor-tab-host" data-pane-role="primary">
|
||||
<div class="mnote-main-tab-strip" data-mnote-main-tab-strip="true" data-pane-role="primary" role="tablist" aria-label="主编辑区标签页">
|
||||
<button
|
||||
type="button"
|
||||
class="mnote-main-tab is-active"
|
||||
data-mnote-main-tab="page"
|
||||
data-mnote-tab-kind="page"
|
||||
data-pane-role="primary"
|
||||
data-workspace-id={workspace_id.clone().unwrap_or_default()}
|
||||
role="tab"
|
||||
aria-selected="true"
|
||||
tabindex="0"
|
||||
>
|
||||
<span class="mnote-main-tab-badge" aria-hidden="true"></span>
|
||||
<span class="mnote-main-tab-title">"主页"</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="mnote-main-tab-panels">
|
||||
<div
|
||||
data-mnote-page-tab-panel="true"
|
||||
data-pane-role="primary"
|
||||
>
|
||||
<div
|
||||
class="mnote-navigation-page-host"
|
||||
data-mnote-navigation-page-placeholder="true"
|
||||
data-pane-role="primary"
|
||||
>
|
||||
<div inner_html={navigation_html}></div>
|
||||
</div>
|
||||
</div>
|
||||
<section
|
||||
class="mnote-resource-tab-host"
|
||||
data-mnote-resource-tab-host="true"
|
||||
data-pane-role="primary"
|
||||
data-testid="mnote-resource-tab-host"
|
||||
hidden=true
|
||||
>
|
||||
<div class="mnote-resource-tab-panel-root" data-mnote-resource-tab-panel-root="true" data-pane-role="primary"></div>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
}.into_any()
|
||||
} else {
|
||||
let empty_primary_model = DocumentPaneViewModel {
|
||||
pane_role: "primary",
|
||||
|
||||
Reference in New Issue
Block a user