mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-03 09:51:39 +00:00
- **refactor: move session-related code to middleware package** - **refactor: update PKL build process and adjust related configurations** - **feat: integrate base.cosmos.v1 Genesis module** - **refactor: pass session context to modal rendering functions** - **refactor: move nebula package to app directory and update templ version** - **refactor: Move home section video view to dedicated directory** - **refactor: remove unused views file** - **refactor: move styles and UI components to global scope** - **refactor: Rename images.go to cdn.go** - **feat: Add Empty State Illustrations** - **refactor: Consolidate Vault Index Logic** - **fix: References to App.wasm and remove Vault Directory embedded CDN files** - **refactor: Move CDN types to Models** - **fix: Correct line numbers in templ error messages for arch_templ.go** - **refactor: use common types for peer roles** - **refactor: move common types and ORM to a shared package** - **fix: Config import dwn** - **refactor: move nebula directory to app** - **feat: Rebuild nebula** - **fix: correct file paths in panels templates** - **feat: Remove duplicate types** - **refactor: Move dwn to pkg/core** - **refactor: Binary Structure** - **feat: Introduce Crypto Pkg** - **fix: Broken Process Start** - **feat: Update pkg/* structure** - **feat: Refactor PKL Structure** - **build: update pkl build process** - **chore: Remove Empty Files** - **refactor: remove unused macaroon package** - **feat: Add WebAwesome Components** - **refactor: consolidate build and generation tasks into a single taskfile, remove redundant makefile targets** - **refactor: refactor server and move components to pkg/core/dwn** - **build: update go modules** - **refactor: move gateway logic into dedicated hway command** - **feat: Add KSS (Krawczyk-Song-Song) MPC cryptography module** - **feat: Implement MPC-based JWT signing and UCAN token generation** - **feat: add support for MPC-based JWT signing** - **feat: Implement MPC-based UCAN capabilities for smart accounts** - **feat: add address field to keyshareSource** - **feat: Add comprehensive MPC test suite for keyshares, UCAN tokens, and token attenuations** - **refactor: improve MPC keyshare management and signing process** - **feat: enhance MPC capability hierarchy documentation** - **refactor: rename GenerateKeyshares function to NewKeyshareSource for clarity** - **refactor: remove unused Ethereum address computation** - **feat: Add HasHandle and IsAuthenticated methods to HTTPContext** - **refactor: Add context.Context support to session HTTPContext** - **refactor: Resolve context interface conflicts in HTTPContext** - **feat: Add session ID context key and helper functions** - **feat: Update WebApp Page Rendering** - **refactor: Simplify context management by using single HTTPContext key** - **refactor: Simplify HTTPContext creation and context management in session middleware** - **refactor: refactor session middleware to use a single data structure** - **refactor: Simplify HTTPContext implementation and session data handling** - **refactor: Improve session context handling and prevent nil pointer errors** - **refactor: Improve session context handling with nil safety and type support** - **refactor: improve session data injection** - **feat: add full-screen modal component and update registration flow** - **chore: add .air.toml to .gitignore** - **feat: add Air to devbox and update dependencies**
166 lines
6.5 KiB
Templ
166 lines
6.5 KiB
Templ
package landing
|
||
|
||
import models "github.com/onsonr/sonr/pkg/webapp/models"
|
||
|
||
// ╭───────────────────────────────────────────────────────────╮
|
||
// │ Data Model │
|
||
// ╰───────────────────────────────────────────────────────────╯
|
||
|
||
var lowlights = &models.Lowlights{
|
||
Heading: "The Fragmentation Problem in the Existing Web is seeping into Crypto",
|
||
UpperQuotes: []*models.Testimonial{
|
||
{
|
||
FullName: "0xDesigner",
|
||
Username: "@0xDesigner",
|
||
Avatar: &models.Image{
|
||
Src: models.Avatar0xDesigner.Src(),
|
||
Width: "44",
|
||
Height: "44",
|
||
},
|
||
Quote: "what if the wallet ui appeared next to the click instead of in a new browser window?",
|
||
},
|
||
{
|
||
FullName: "Alex Recouso",
|
||
Username: "@alexrecouso",
|
||
Avatar: &models.Image{
|
||
Src: models.AvatarAlexRecouso.Src(),
|
||
Width: "44",
|
||
Height: "44",
|
||
},
|
||
Quote: "2024 resembles 1984, but it doesn't have to be that way for you",
|
||
},
|
||
{
|
||
FullName: "Chjango Unchained",
|
||
Username: "@chjango",
|
||
Avatar: &models.Image{
|
||
Src: models.AvatarChjango.Src(),
|
||
Width: "44",
|
||
Height: "44",
|
||
},
|
||
Quote: "IBC is the inter-blockchain highway of @cosmos. While not very cypherpunk, charging a 1.5 basis pt fee would go a long way if priced in $ATOM.",
|
||
},
|
||
{
|
||
FullName: "Gwart",
|
||
Username: "@GwartyGwart",
|
||
Avatar: &models.Image{
|
||
Src: models.AvatarGwart.Src(),
|
||
Width: "44",
|
||
Height: "44",
|
||
},
|
||
Quote: " Base is incredible. Most centralized l2. Least details about their plans to decentralize. Keeps OP cabal quiet by pretending to care about quadratic voting and giving 10% tithe. Pays Ethereum mainnet virtually nothing. Runs yuppie granola ad campaigns.",
|
||
},
|
||
},
|
||
LowerQuotes: []*models.Testimonial{
|
||
{
|
||
FullName: "winnie",
|
||
Username: "@winnielaux_",
|
||
Avatar: &models.Image{
|
||
Src: models.AvatarWinnieLaux.Src(),
|
||
Width: "44",
|
||
Height: "44",
|
||
},
|
||
Quote: "the ability to download apps directly from the web or from “crypto-only” app stores will be a massive unlock for web3",
|
||
},
|
||
{
|
||
FullName: "Jelena",
|
||
Username: "@jelena_noble",
|
||
Avatar: &models.Image{
|
||
Src: models.AvatarJelenaNoble.Src(),
|
||
Width: "44",
|
||
Height: "44",
|
||
},
|
||
Quote: "Excited for all the @cosmos nerds to be vindicated in the next bull run",
|
||
},
|
||
{
|
||
FullName: "accountless",
|
||
Username: "@alexanderchopan",
|
||
Avatar: &models.Image{
|
||
Src: models.AvatarAccountless.Src(),
|
||
Width: "44",
|
||
Height: "44",
|
||
},
|
||
Quote: "sounds like webThree. Single key pair Requires the same signer At risk of infinite approvals Public history of all transactions different account on each chain different addresses for each account",
|
||
},
|
||
{
|
||
FullName: "Unusual Whales",
|
||
Username: "@unusual_whales",
|
||
Avatar: &models.Image{
|
||
Src: models.AvatarUnusualWhales.Src(),
|
||
Width: "44",
|
||
Height: "44",
|
||
},
|
||
Quote: "BREAKING: Fidelity & Fidelity Investments has confirmed that over 77,000 customers had personal information compromised, including Social Security numbers and driver’s licenses.",
|
||
},
|
||
},
|
||
}
|
||
|
||
// ╭───────────────────────────────────────────────────────────╮
|
||
// │ Render Section View │
|
||
// ╰───────────────────────────────────────────────────────────╯
|
||
|
||
// Lowlights is the (4th) home page lowlights section
|
||
templ Lowlights() {
|
||
<section class="bg-zinc-800">
|
||
<div class="py-12 md:py-20">
|
||
<div class="max-w-5xl mx-auto px-4 sm:px-6">
|
||
<div class="max-w-3xl mx-auto text-center pb-12 md:pb-20">
|
||
<h2 class="font-inter-tight text-3xl md:text-4xl font-bold text-zinc-200">
|
||
{ lowlights.Heading }
|
||
</h2>
|
||
</div>
|
||
</div>
|
||
<div class="max-w-[94rem] mx-auto space-y-6">
|
||
<!-- Row #1 -->
|
||
<div
|
||
x-data="{}"
|
||
x-init="$nextTick(() => {
|
||
let ul = $refs.testimonials;
|
||
ul.insertAdjacentHTML('afterend', ul.outerHTML);
|
||
ul.nextSibling.setAttribute('aria-hidden', 'true');
|
||
})"
|
||
class="w-full inline-flex flex-nowrap overflow-hidden [mask-image:_linear-gradient(to_right,transparent_0,_black_28%,_black_calc(100%-28%),transparent_100%)] group"
|
||
>
|
||
<div x-ref="testimonials" class="flex items-start justify-center md:justify-start [&>div]:mx-3 animate-infinite-scroll group-hover:[animation-play-state:paused]">
|
||
for _,quote := range lowlights.UpperQuotes {
|
||
@quoteItem(quote)
|
||
}
|
||
</div>
|
||
</div>
|
||
<!-- Row #2 -->
|
||
<div
|
||
x-data="{}"
|
||
x-init="$nextTick(() => {
|
||
let ul = $refs.testimonials;
|
||
ul.insertAdjacentHTML('afterend', ul.outerHTML);
|
||
ul.nextSibling.setAttribute('aria-hidden', 'true');
|
||
})"
|
||
class="w-full inline-flex flex-nowrap overflow-hidden [mask-image:_linear-gradient(to_right,transparent_0,_black_28%,_black_calc(100%-28%),transparent_100%)] group"
|
||
>
|
||
<div x-ref="testimonials" class="flex items-start justify-center md:justify-start [&>div]:mx-3 animate-infinite-scroll-inverse group-hover:[animation-play-state:paused] [animation-delay:-7.5s]">
|
||
for _,quote := range lowlights.LowerQuotes {
|
||
@quoteItem(quote)
|
||
}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
}
|
||
|
||
templ quoteItem(quote *models.Testimonial) {
|
||
<div class="rounded h-full w-[22rem] border border-transparent [background:linear-gradient(#323237,#323237)_padding-box,linear-gradient(120deg,theme(colors.zinc.700),theme(colors.zinc.700/0),theme(colors.zinc.700))_border-box] p-5">
|
||
<div class="flex items-center mb-4">
|
||
<img class="shrink-0 rounded-full mr-3" src={ quote.Avatar.Src } width={ quote.Avatar.Width } height={ quote.Avatar.Height } alt="Testimonial 01"/>
|
||
<div>
|
||
<div class="font-inter-tight font-bold text-zinc-200">{ quote.FullName }</div>
|
||
<div>
|
||
<a class="text-sm font-medium text-zinc-500 hover:text-zinc-300 transition" href="#0">{ quote.Username }</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="text-zinc-500 before:content-['\0022'] after:content-['\0022']">
|
||
{ quote.Quote }
|
||
</div>
|
||
</div>
|
||
}
|