fix ui for hunting ground

This commit is contained in:
rizary 2025-07-10 12:55:47 +07:00
parent e5c930c9ff
commit d4dc0ba7cf
Signed by untrusted user who does not match committer: rizary
GPG key ID: 2CE8D69D02F1CEB5
8 changed files with 94 additions and 86 deletions

View file

@ -47,6 +47,13 @@ dev = []
prod = []
deep-trace = []
[profile.release-with-debug]
inherits = "release"
debug = true
opt-level = 3
lto = true
codegen-units = 1
# Config for 'git cliff'
# Run with `GITHUB_TOKEN=$(gh auth token) git cliff --bump -up CHANGELOG.md`
# https://git-cliff.org/docs/configuration

View file

@ -96,8 +96,8 @@ export component App inherits Window {
retry-connection => {
root.retry-health-check();
}
}
}
// Login Screen
if app-state == "login": VerticalLayout {
@ -223,36 +223,36 @@ export component App inherits Window {
user-initials: root.user-initials;
logout => {
root.logout-requested();
}
}
}
if current-page == "Hunting Ground": HuntingGroundPage {
new-tokens: root.new-tokens;
cex-tokens: root.cex-tokens;
analysis-tokens: root.analysis-tokens;
new-tokens: root.new-tokens;
cex-tokens: root.cex-tokens;
analysis-tokens: root.analysis-tokens;
current-time: root.current-time;
clear-new-tokens => {
root.clear-new-tokens();
}
clear-new-tokens => {
root.clear-new-tokens();
}
clear-cex-tokens => {
root.clear-cex-tokens();
}
clear-cex-tokens => {
root.clear-cex-tokens();
}
clear-analysis-tokens => {
root.clear-analysis-tokens();
clear-analysis-tokens => {
root.clear-analysis-tokens();
}
}
if current-page == "Trading": TradingPage {
buy-clicked => {
root.buy-clicked();
}
sell-clicked => {
root.sell-clicked();
}
buy-clicked => {
root.buy-clicked();
}
sell-clicked => {
root.sell-clicked();
}
}
if current-page == "Portfolio": PortfolioPage {
}

View file

@ -110,11 +110,11 @@ export component MainWindow inherits Window {
loading-status: root.loading-status;
// Navigation state
current-page: root.current-page;
current-page: root.current-page;
user-initials: root.user-initials;
// Hunting ground properties
new-tokens: root.new-tokens;
// Hunting ground properties
new-tokens: root.new-tokens;
cex-tokens: root.cex-tokens;
analysis-tokens: root.analysis-tokens;
current-time: root.current-time;
@ -184,3 +184,4 @@ export component MainWindow inherits Window {
}
}
}

View file

@ -32,49 +32,49 @@ export component Dashboard {
horizontal-alignment: center;
vertical-alignment: center;
}
}
}
// Title
Text {
Text {
text: "Dashboard";
font-size: 48px;
font-weight: 700;
font-weight: 700;
color: Palette.foreground;
horizontal-alignment: center;
}
horizontal-alignment: center;
}
// Coming soon message
Text {
Text {
text: "Coming Soon";
font-size: 24px;
font-weight: 500;
font-weight: 500;
color: Palette.foreground;
horizontal-alignment: center;
}
}
// Description
Text {
Text {
text: "We're working hard to bring you an amazing dashboard experience.\nCheck back soon for portfolio insights, trading analytics, and more!";
font-size: 16px;
color: Palette.foreground;
horizontal-alignment: center;
opacity: 0.8;
}
}
// Placeholder for future features
Rectangle {
Rectangle {
width: 400px;
height: 200px;
background: Palette.alternate-background;
border-radius: 12px;
border-width: 1px;
border-radius: 12px;
border-width: 1px;
border-color: Palette.border;
VerticalLayout {
VerticalLayout {
alignment: center;
spacing: 10px;
Text {
Text {
text: "✨ Coming Features:";
font-size: 18px;
font-weight: 600;
@ -83,14 +83,14 @@ export component Dashboard {
}
VerticalLayout {
spacing: 8px;
spacing: 8px;
Text {
Text {
text: "• Real-time Portfolio Tracking";
font-size: 14px;
font-size: 14px;
color: Palette.alternate-foreground;
horizontal-alignment: center;
}
}
Text {
text: "• Advanced Trading Analytics";

View file

@ -24,22 +24,22 @@ export component HuntingGroundPage {
padding: 16px;
spacing: 16px;
// Header with refresh button
HorizontalLayout {
alignment: space-between;
// Header with refresh button
HorizontalLayout {
alignment: space-between;
Text {
text: "🎯 Token Hunting Ground";
font-size: 28px;
font-weight: 700;
Text {
text: "🎯 Token Hunting Ground";
font-size: 28px;
font-weight: 700;
color: Palette.foreground;
}
}
}
// Three columns layout using proper Slint responsive layout
HorizontalLayout {
spacing: 16px;
padding: 8px;
HorizontalLayout {
spacing: 16px;
padding: 8px;
min-height: 500px; // Minimum height, but allows growing
alignment: stretch; // Stretch children to fill available space
@ -49,8 +49,8 @@ export component HuntingGroundPage {
tokens: root.new-tokens;
clear-tokens => {
root.clear-new-tokens();
}
}
}
}
// Column 2: CEX Analyst (1/3 responsive width)
CexTokensColumn {
@ -58,8 +58,8 @@ export component HuntingGroundPage {
tokens: root.cex-tokens;
clear-tokens => {
root.clear-cex-tokens();
}
}
}
// Column 3: Analysis Complete (1/3 responsive width)
AnalysisCompleteColumn {

View file

@ -26,7 +26,7 @@ export component LoadingView {
alignment: center;
spacing: 16px;
Rectangle {
Rectangle {
width: 120px;
height: 120px;
border-radius: 60px;
@ -75,11 +75,11 @@ export component LoadingView {
alignment: center;
spacing: 16px;
Text {
text: "Loading Ziya";
font-size: 24px;
Text {
text: "Loading Ziya";
font-size: 24px;
color: Palette.foreground;
font-weight: 600;
font-weight: 600;
horizontal-alignment: center;
}
@ -88,13 +88,13 @@ export component LoadingView {
width: 200px;
height: 8px;
indeterminate: true;
}
}
Text {
Text {
text: status-text;
font-size: 14px;
font-size: 14px;
color: Palette.foreground;
opacity: 0.7;
opacity: 0.7;
horizontal-alignment: center;
}
}

View file

@ -19,7 +19,7 @@ export component NavigationWidget {
// Right border using a separate rectangle
Rectangle {
width: 1px;
height: 100%;
height: 100%;
x: parent.width - 1px;
background: Palette.border;
}
@ -126,9 +126,9 @@ export component NavigationWidget {
horizontal-alignment: left;
vertical-alignment: center;
}
}
}
}
}
// User Profile Section - Icon only mode
if sidebar-state == "icon-only": Rectangle {
@ -472,14 +472,14 @@ export component NavigationWidget {
padding: 12px;
alignment: start;
Text {
Text {
text: "🚪";
font-size: 20px;
vertical-alignment: center;
}
vertical-alignment: center;
}
Text {
text: "Logout";
Text {
text: "Logout";
color: Palette.alternate-foreground;
font-size: 14px;
font-weight: 400;