//! Unified Services Page Component using shared delegation patterns //! //! This module provides a unified interface that automatically selects between //! client-side reactive and server-side static implementations based on context. use leptos::prelude::*; use rustelo_content::rustelo_core_lib::i18n::content_helper::create_content_provider_reactive; #[cfg(target_arch = "wasm32")] use rustelo_content::rustelo_core_lib::utils::nav; /// Unified Services Page component that works in both SSR and client contexts /// Takes structured content data instead of individual parameters #[component] pub fn UnifiedServicesPage( #[prop(default = rustelo_content::rustelo_core_lib::config::get_default_language().to_string())] _language: String, #[prop(optional)] lang_content: Option>, ) -> impl IntoView { // Use DRY content accessor helper let content = create_content_provider_reactive(lang_content.clone()); // Pre-extract ONLY URLs for href attributes to avoid closure ownership issues // Map to actual keys from the FTL file let services_cta_contact_url = content.t("services-contact-url"); let services_cta_work_request_url = content.t("services-work-request-url"); let services_cta_contact_text = content.t("services-schedule-consultation"); let services_cta_work_request_text = content.t("services-request-project-quote"); view! {
// Header Section

{content.t("services-page-title")}

{content.t("services-page-subtitle")}

// Project Participation Section

{content.t("services-project-participation")}

{content.t("services-project-participation-desc")}

{content.t("services-requirements-criteria")}

{content.t("services-requirements-criteria-desc")}

{content.t("services-custom-infrastructure")}

{content.t("services-custom-infrastructure-desc")}

{content.t("services-cicd-implementation")}

{content.t("services-cicd-implementation-desc")}

{content.t("services-research-prototyping")}

{content.t("services-research-prototyping-desc")}

// What You Get Section

{content.t("services-what-you-get")}

{content.t("services-production-ready-code")}
{content.t("services-complete-documentation")}
{content.t("services-knowledge-transfer")}
{content.t("services-post-deployment-support")}
{content.t("services-open-source-focus")}
// Mentoring Section

{content.t("services-mentoring-guidance")}

{content.t("services-mentoring-guidance-desc")}

// Technical Collaboration

{content.t("services-technical-collaboration")}

{content.t("services-technical-collaboration-desc")}

{content.t("services-one-on-one-sessions")}

{content.t("services-one-to-four-hours")}

{content.t("services-pair-programming")}

{content.t("services-two-to-eight-hours")}

{content.t("services-pair-programming-sessions-desc")}

{content.t("services-code-review-sessions")}

{content.t("services-one-to-two-hours")}

{content.t("services-architecture-reviews-desc")}

{content.t("services-team-guidance")}

{content.t("services-ongoing")}

{content.t("services-research-guidance-desc")}

// Training & Education

{content.t("services-training-education")}

{content.t("services-training-education-desc")}

{content.t("services-custom-courses")}

{content.t("services-custom-courses-desc")}

{content.t("services-technical-workshops")}

{content.t("services-technical-workshops-desc")}

{content.t("services-conference-talks")}

{content.t("services-conference-talks-desc")}

{content.t("services-educational-content")}

{content.t("services-educational-content-desc")}

// Popular Topics Section

{content.t("services-popular-topics")}

// Rust Development
"🦀"

{content.t("services-rust-development")}

  • {content.t("services-systems-programming")}
  • {content.t("services-web-applications")}
  • {content.t("services-performance-optimization")}
// Infrastructure
"🏗️"

{content.t("services-infrastructure")}

  • {content.t("services-kubernetes-deployment")}
  • {content.t("services-cicd-pipelines")}
  • {content.t("services-self-hosting")}
// Web3 & Blockchain
"🌐"

{content.t("services-web3-blockchain")}

  • {content.t("services-polkadot-ecosystem")}
  • {content.t("services-smart-contracts")}
  • {content.t("services-dapp-development")}
// Best Practices
"⚡"

{content.t("services-best-practices")}

  • {content.t("services-open-source-strategy")}
  • {content.t("services-security-practices")}
  • {content.t("services-code-quality")}
// Call to Action Section
} }