refactor(components): extract data models into shared models package
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"nebula/models"
|
||||
"nebula/views"
|
||||
)
|
||||
|
||||
@@ -26,6 +27,8 @@ func RegisterRoutes(mux *http.ServeMux) {
|
||||
mux.HandleFunc("POST /authorize/deny", handleAuthorizeDeny)
|
||||
|
||||
mux.HandleFunc("GET /dashboard", handleDashboard)
|
||||
|
||||
mux.HandleFunc("GET /settings", handleSettings)
|
||||
}
|
||||
|
||||
// handleWelcome renders the full welcome page at step 1
|
||||
@@ -52,7 +55,7 @@ func handleWelcomeStep(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
func handleRegister(w http.ResponseWriter, r *http.Request) {
|
||||
state := views.RegisterState{Step: 1}
|
||||
state := models.RegisterState{Step: 1}
|
||||
views.RegisterPage(state).Render(r.Context(), w)
|
||||
}
|
||||
|
||||
@@ -68,7 +71,7 @@ func handleRegisterStep(w http.ResponseWriter, r *http.Request) {
|
||||
method = "passkey"
|
||||
}
|
||||
|
||||
state := views.RegisterState{Step: step, Method: method}
|
||||
state := models.RegisterState{Step: step, Method: method}
|
||||
|
||||
if r.Header.Get("HX-Request") == "true" {
|
||||
views.RegisterStepWithStepper(state).Render(r.Context(), w)
|
||||
@@ -79,7 +82,7 @@ func handleRegisterStep(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
func handleRegisterCapabilities(w http.ResponseWriter, r *http.Request) {
|
||||
caps := views.DeviceCapabilities{
|
||||
caps := models.DeviceCapabilities{
|
||||
Platform: true,
|
||||
CrossPlatform: true,
|
||||
Conditional: true,
|
||||
@@ -88,7 +91,7 @@ func handleRegisterCapabilities(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
func handleRegisterVerifyCode(w http.ResponseWriter, r *http.Request) {
|
||||
state := views.RegisterState{Step: 3}
|
||||
state := models.RegisterState{Step: 3}
|
||||
if r.Header.Get("HX-Request") == "true" {
|
||||
views.RegisterStepWithStepper(state).Render(r.Context(), w)
|
||||
return
|
||||
@@ -97,7 +100,7 @@ func handleRegisterVerifyCode(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
func handleLogin(w http.ResponseWriter, r *http.Request) {
|
||||
state := views.LoginState{Step: "1"}
|
||||
state := models.LoginState{Step: "1"}
|
||||
views.LoginPage(state).Render(r.Context(), w)
|
||||
}
|
||||
|
||||
@@ -107,7 +110,7 @@ func handleLoginStep(w http.ResponseWriter, r *http.Request) {
|
||||
step = "1"
|
||||
}
|
||||
|
||||
state := views.LoginState{Step: step}
|
||||
state := models.LoginState{Step: step}
|
||||
|
||||
if r.Header.Get("HX-Request") == "true" {
|
||||
views.LoginStepWithOOB(state).Render(r.Context(), w)
|
||||
@@ -131,58 +134,7 @@ func handleLoginQRStatus(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
func handleAuthorize(w http.ResponseWriter, r *http.Request) {
|
||||
reqType := r.URL.Query().Get("type")
|
||||
if reqType == "" {
|
||||
reqType = "connect"
|
||||
}
|
||||
|
||||
req := views.AuthRequest{
|
||||
Type: reqType,
|
||||
App: views.AppInfo{
|
||||
Name: "Uniswap",
|
||||
Domain: "app.uniswap.org",
|
||||
LogoIcon: "cube",
|
||||
Verified: true,
|
||||
},
|
||||
Wallet: views.WalletInfo{
|
||||
Name: "Main Wallet",
|
||||
Address: "sonr1x9f...7k2m",
|
||||
Balance: "1,234.56 SNR",
|
||||
},
|
||||
Message: `Welcome to Uniswap!
|
||||
|
||||
Click to sign in and accept the Uniswap Terms of Service.
|
||||
|
||||
This request will not trigger a blockchain transaction or cost any gas fees.
|
||||
|
||||
Wallet address:
|
||||
sonr1x9f4h2k8m3n5p7q2r4s6t8v0w3x5y7z9a1b3c5d7k2m
|
||||
|
||||
Nonce: 8f4a2b1c`,
|
||||
MessageHex: "0x57656c636f6d6520746f20556e697377617021...",
|
||||
Transaction: &views.TxDetails{
|
||||
Type: "Swap",
|
||||
FromToken: views.TokenAmount{
|
||||
Symbol: "ETH",
|
||||
Amount: "100.00",
|
||||
USD: "$234,567.00",
|
||||
Initials: "E",
|
||||
},
|
||||
ToToken: views.TokenAmount{
|
||||
Symbol: "USDC",
|
||||
Amount: "125,000",
|
||||
USD: "$125,000.00",
|
||||
Initials: "U",
|
||||
},
|
||||
Network: "Sonr Mainnet",
|
||||
NetworkFee: "~$0.12",
|
||||
MaxFee: "$0.26",
|
||||
Slippage: "0.5%",
|
||||
Contract: "0x7a25...3f8b",
|
||||
Function: "swapExactTokensForTokens()",
|
||||
RawData: "0x38ed1739\n0000000000000000000000000000000000000056bc75e2d63100000...",
|
||||
},
|
||||
}
|
||||
|
||||
req := models.DefaultAuthRequest(reqType)
|
||||
views.AuthorizePage(req).Render(r.Context(), w)
|
||||
}
|
||||
|
||||
@@ -204,7 +156,7 @@ func handleDashboard(w http.ResponseWriter, r *http.Request) {
|
||||
if tab == "" {
|
||||
tab = "overview"
|
||||
}
|
||||
data := views.DefaultDashboardData()
|
||||
data := models.DefaultDashboardData()
|
||||
|
||||
if r.Header.Get("HX-Request") == "true" {
|
||||
views.DashboardContent(data, tab).Render(r.Context(), w)
|
||||
@@ -213,3 +165,12 @@ func handleDashboard(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
views.DashboardPage(data, tab).Render(r.Context(), w)
|
||||
}
|
||||
|
||||
func handleSettings(w http.ResponseWriter, r *http.Request) {
|
||||
tab := r.URL.Query().Get("tab")
|
||||
if tab == "" {
|
||||
tab = "profile"
|
||||
}
|
||||
data := models.DefaultSettingsData()
|
||||
views.SettingsPage(data, tab).Render(r.Context(), w)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user