···12121313/// Determines if the current route should show the full footer or just the minimal version.
1414/// Full footer shows on shell pages (Home, Editor) and on owner's content pages.
1515-fn should_show_full_footer(route: &Route) -> bool {
1515+pub fn should_show_full_footer(route: &Route) -> bool {
1616 match route {
1717 // Shell pages: always show full footer
1818 Route::Home {}
···6767}
68686969#[component]
7070-pub fn Footer() -> Element {
7171- let route = use_route::<Route>();
7272- let show_full = should_show_full_footer(&route);
7373-7070+pub fn Footer(#[props(default = true)] show_full: bool) -> Element {
7471 rsx! {
7572 document::Link { rel: "stylesheet", href: FOOTER_CSS }
7673···174171 rel: "noopener",
175172 "Report Bug"
176173 }
174174+175175+ span { class: "footer-separator", "|" }
176176+177177+ Link {
178178+ to: crate::env::WEAVER_APP_HOST,
179179+ class: "footer-link",
180180+ "weaver.sh"
181181+ }
182182+177183 }
178184 }
179185 }
+1-1
crates/weaver-app/src/views/mod.rs
···3939pub use invites::InvitesPage;
40404141mod footer;
4242-pub use footer::Footer;
4242+pub use footer::{Footer, should_show_full_footer};
43434444mod static_page;
4545pub use static_page::{AboutPage, PrivacyPage, TermsPage};
···88 a.status as account_status,
99 'account' as source,
1010 a.event_time,
1111- now64(3) as indexed_at
1111+ a.indexed_at
1212FROM raw_account_events a
1313INNER JOIN handle_mappings h ON h.did = a.did AND h.freed = 0
1414WHERE a.active = 0 AND a.status != ''
···1414 -- Position from array index
1515 assumeNotNull(entry_position) as position,
16161717- now64(3) as indexed_at
1717+ indexed_at
1818FROM notebooks
1919ARRAY JOIN
2020 record.entryList[].uri as entry_uri,