Compare commits

..

1 Commits

Author SHA1 Message Date
AppCakes 068b82acfc build: 9b712b37-afab-4b8f-a695-2ceae4868921 2026-06-11 07:51:59 +00:00
14 changed files with 3070 additions and 4221 deletions
Binary file not shown.
+1 -1
View File
@@ -4,7 +4,7 @@ android {
namespace = "io.ionic.starter" namespace = "io.ionic.starter"
compileSdk = rootProject.ext.compileSdkVersion compileSdk = rootProject.ext.compileSdkVersion
defaultConfig { defaultConfig {
applicationId "com.basedeployer.app" applicationId "com.qoutelink.app"
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1 versionCode 1
+1 -1
View File
@@ -25,7 +25,7 @@
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="com.basedeployer.app" /> <data android:scheme="com.qoutelink.app" />
</intent-filter> </intent-filter>
</activity> </activity>
+2 -2
View File
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<resources> <resources>
<string name="app_name">Base Deployer</string> <string name="app_name">Qoutelink</string>
<string name="title_activity_main">Base Deployer</string> <string name="title_activity_main">Qoutelink</string>
<string name="package_name">io.ionic.starter</string> <string name="package_name">io.ionic.starter</string>
<string name="custom_url_scheme">io.ionic.starter</string> <string name="custom_url_scheme">io.ionic.starter</string>
</resources> </resources>
+2 -2
View File
@@ -1,8 +1,8 @@
import type { CapacitorConfig } from '@capacitor/cli'; import type { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { const config: CapacitorConfig = {
appId: 'com.basedeployer.app', appId: 'com.qoutelink.app',
appName: 'Base Deployer', appName: 'Qoutelink',
webDir: 'dist', webDir: 'dist',
plugins: { plugins: {
FirebaseAuthentication: { FirebaseAuthentication: {
+2826 -15
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -308,7 +308,7 @@
); );
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
PRODUCT_BUNDLE_IDENTIFIER = com.basedeployer.app; PRODUCT_BUNDLE_IDENTIFIER = com.qoutelink.app;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@@ -330,7 +330,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.basedeployer.app; PRODUCT_BUNDLE_IDENTIFIER = com.qoutelink.app;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
+3 -3
View File
@@ -7,7 +7,7 @@
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>en</string> <string>en</string>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
<string>Base Deployer</string> <string>Qoutelink</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string> <string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
@@ -51,10 +51,10 @@
<array> <array>
<dict> <dict>
<key>CFBundleURLName</key> <key>CFBundleURLName</key>
<string>com.basedeployer.app</string> <string>com.qoutelink.app</string>
<key>CFBundleURLSchemes</key> <key>CFBundleURLSchemes</key>
<array> <array>
<string>com.basedeployer.app</string> <string>com.qoutelink.app</string>
</array> </array>
</dict> </dict>
</array> </array>
+1 -7
View File
@@ -18,17 +18,13 @@
"@capacitor/haptics": "8.0.2", "@capacitor/haptics": "8.0.2",
"@capacitor/ios": "8.3.4", "@capacitor/ios": "8.3.4",
"@capacitor/keyboard": "8.0.3", "@capacitor/keyboard": "8.0.3",
"@capacitor/preferences": "^8.0.1",
"@capacitor/push-notifications": "^8.1.1", "@capacitor/push-notifications": "^8.1.1",
"@capacitor/status-bar": "8.0.2", "@capacitor/status-bar": "8.0.2",
"@hookform/resolvers": "^3.9.0", "@hookform/resolvers": "^3.9.0",
"@ionic/pwa-elements": "^3.0.0", "@ionic/pwa-elements": "^3.0.0",
"@ionic/react": "8.8.7", "@ionic/react": "8.8.7",
"@ionic/react-router": "8.8.7", "@ionic/react-router": "8.8.7",
"@reown/appkit": "^1.8.21", "@supabase/supabase-js": "^2.0.0",
"@reown/appkit-adapter-wagmi": "^1.8.21",
"@supabase/supabase-js": "^2.108.1",
"@tanstack/react-query": "^5.101.1",
"firebase": "^11.0.0", "firebase": "^11.0.0",
"ionicons": "^7.4.0", "ionicons": "^7.4.0",
"katex": "^0.16.0", "katex": "^0.16.0",
@@ -38,8 +34,6 @@
"react-katex": "^3.0.1", "react-katex": "^3.0.1",
"react-router": "^5.3.4", "react-router": "^5.3.4",
"react-router-dom": "^5.3.4", "react-router-dom": "^5.3.4",
"viem": "^2.53.1",
"wagmi": "^3.6.18",
"zod": "^3.24.0", "zod": "^3.24.0",
"zustand": "^5.0.0" "zustand": "^5.0.0"
}, },
+18 -69
View File
@@ -1,72 +1,24 @@
import React, { useEffect } from 'react'; import React from "react";
import { Redirect, Route } from 'react-router-dom'; import { Redirect, Route } from "react-router-dom";
import { IonApp, IonRouterOutlet } from '@ionic/react'; import { IonApp, IonRouterOutlet } from "@ionic/react";
import { IonReactRouter } from '@ionic/react-router'; import { IonReactRouter } from "@ionic/react-router";
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import "@ionic/react/css/core.css";
import { WagmiProvider } from 'wagmi'; import "@ionic/react/css/normalize.css";
import { WagmiAdapter } from '@reown/appkit-adapter-wagmi'; import "@ionic/react/css/structure.css";
import { base, type AppKitNetwork } from '@reown/appkit/networks'; import "@ionic/react/css/typography.css";
import { createAppKit } from '@reown/appkit/react'; import "@ionic/react/css/padding.css";
import "@ionic/react/css/float-elements.css";
import "@ionic/react/css/text-alignment.css";
import "@ionic/react/css/text-transformation.css";
import "@ionic/react/css/flex-utils.css";
import "@ionic/react/css/display.css";
import { setStatusBarStyle, Style } from './utils/statusBar'; import "./theme/variables.css";
import '@ionic/react/css/core.css'; import Home from "./pages/Home";
import '@ionic/react/css/normalize.css';
import '@ionic/react/css/structure.css';
import '@ionic/react/css/typography.css';
import '@ionic/react/css/padding.css';
import '@ionic/react/css/float-elements.css';
import '@ionic/react/css/text-alignment.css';
import '@ionic/react/css/text-transformation.css';
import '@ionic/react/css/flex-utils.css';
import '@ionic/react/css/display.css';
import './theme/variables.css'; const App: React.FC = () => (
import Home from './pages/Home';
// Setup QueryClient
const queryClient = new QueryClient();
// Setup AppKit
const projectId =
import.meta.env.VITE_WALLETCONNECT_PROJECT_ID ||
'01e0a2bf8d37317e040edb7878d70804';
const metadata = {
name: 'Base Deployer',
description: 'Base Mainnet GM dApp',
url: 'https://basedeployer.app',
icons: ['https://avatars.githubusercontent.com/u/37784886'],
};
const networks = [base as any] as [AppKitNetwork, ...AppKitNetwork[]];
const wagmiAdapter = new WagmiAdapter({
networks,
projectId,
ssr: false,
});
createAppKit({
adapters: [wagmiAdapter],
networks,
projectId,
metadata,
features: {
analytics: true,
},
});
const App: React.FC = () => {
useEffect(() => {
setStatusBarStyle(Style.Dark); // Dark background, light icons
}, []);
return (
<WagmiProvider config={wagmiAdapter.wagmiConfig}>
<QueryClientProvider client={queryClient}>
<IonApp> <IonApp>
<IonReactRouter> <IonReactRouter>
<IonRouterOutlet> <IonRouterOutlet>
@@ -75,9 +27,6 @@ const App: React.FC = () => {
</IonRouterOutlet> </IonRouterOutlet>
</IonReactRouter> </IonReactRouter>
</IonApp> </IonApp>
</QueryClientProvider> );
</WagmiProvider>
);
};
export default App; export default App;
+22 -1148
View File
File diff suppressed because it is too large Load Diff
+121 -54
View File
@@ -1,78 +1,78 @@
/* Ionic CSS Variables — customise to match your app's brand */ /* Ionic CSS Variables — customise to match your app's brand */
:root { :root {
--ion-color-primary: #2667ff; --ion-color-primary: #5e6ad2;
--ion-color-primary-rgb: 38, 103, 255; --ion-color-primary-rgb: 94, 106, 210;
--ion-color-primary-contrast: #ffffff; --ion-color-primary-contrast: #ffffff;
--ion-color-primary-contrast-rgb: 255, 255, 255; --ion-color-primary-contrast-rgb: 255, 255, 255;
--ion-color-primary-shade: #215be0; --ion-color-primary-shade: #535db9;
--ion-color-primary-tint: #3c76ff; --ion-color-primary-tint: #6e79d7;
--ion-color-secondary: #7cc7ff; --ion-color-secondary: #7a89f4;
--ion-color-secondary-rgb: 124, 199, 255; --ion-color-secondary-rgb: 122, 137, 244;
--ion-color-secondary-contrast: #0a1020; --ion-color-secondary-contrast: #ffffff;
--ion-color-secondary-contrast-rgb: 10, 16, 32; --ion-color-secondary-contrast-rgb: 255, 255, 255;
--ion-color-secondary-shade: #6dafdf; --ion-color-secondary-shade: #6b79d7;
--ion-color-secondary-tint: #89cdff; --ion-color-secondary-tint: #8895f5;
--ion-color-tertiary: #9fd6ff; --ion-color-tertiary: #8f78d8;
--ion-color-tertiary-rgb: 159, 214, 255; --ion-color-tertiary-rgb: 143, 120, 216;
--ion-color-tertiary-contrast: #0a1020; --ion-color-tertiary-contrast: #ffffff;
--ion-color-tertiary-contrast-rgb: 10, 16, 32; --ion-color-tertiary-contrast-rgb: 255, 255, 255;
--ion-color-tertiary-shade: #8cbcb; --ion-color-tertiary-shade: #7e6ac0;
--ion-color-tertiary-tint: #a9daff; --ion-color-tertiary-tint: #9a86dc;
--ion-color-success: #15803d; --ion-color-success: #3aa67a;
--ion-color-success-rgb: 21, 128, 61; --ion-color-success-rgb: 58, 166, 122;
--ion-color-success-contrast: #ffffff; --ion-color-success-contrast: #ffffff;
--ion-color-success-contrast-rgb: 255, 255, 255; --ion-color-success-contrast-rgb: 255, 255, 255;
--ion-color-success-shade: #127136; --ion-color-success-shade: #33926b;
--ion-color-success-tint: #2c8d50; --ion-color-success-tint: #4eb088;
--ion-color-warning: #eab308; --ion-color-warning: #dfb25a;
--ion-color-warning-rgb: 234, 179, 8; --ion-color-warning-rgb: 223, 178, 90;
--ion-color-warning-contrast: #0a1020; --ion-color-warning-contrast: #2d2520;
--ion-color-warning-contrast-rgb: 10, 16, 32; --ion-color-warning-contrast-rgb: 45, 37, 32;
--ion-color-warning-shade: #ce9d07; --ion-color-warning-shade: #c49d4f;
--ion-color-warning-tint: #ecbb21; --ion-color-warning-tint: #e2bb6b;
--ion-color-danger: #c2410c; --ion-color-danger: #cf6679;
--ion-color-danger-rgb: 194, 65, 12; --ion-color-danger-rgb: 207, 102, 121;
--ion-color-danger-contrast: #ffffff; --ion-color-danger-contrast: #ffffff;
--ion-color-danger-contrast-rgb: 255, 255, 255; --ion-color-danger-contrast-rgb: 255, 255, 255;
--ion-color-danger-shade: #ab390a; --ion-color-danger-shade: #b65a6a;
--ion-color-danger-tint: #c85424; --ion-color-danger-tint: #d57587;
--ion-color-dark: #0a1020; --ion-color-dark: #1f2430;
--ion-color-dark-rgb: 10, 16, 32; --ion-color-dark-rgb: 31, 36, 48;
--ion-color-dark-contrast: #ffffff; --ion-color-dark-contrast: #ffffff;
--ion-color-dark-contrast-rgb: 255, 255, 255; --ion-color-dark-contrast-rgb: 255, 255, 255;
--ion-color-dark-shade: #090e1c; --ion-color-dark-shade: #1b202a;
--ion-color-dark-tint: #222836; --ion-color-dark-tint: #353946;
--ion-color-medium: #6b7a99; --ion-color-medium: #7f8697;
--ion-color-medium-rgb: 107, 122, 153; --ion-color-medium-rgb: 127, 134, 151;
--ion-color-medium-contrast: #ffffff; --ion-color-medium-contrast: #ffffff;
--ion-color-medium-contrast-rgb: 255, 255, 255; --ion-color-medium-contrast-rgb: 255, 255, 255;
--ion-color-medium-shade: #5e6b87; --ion-color-medium-shade: #707686;
--ion-color-medium-tint: #7a87a3; --ion-color-medium-tint: #8c93a2;
--ion-color-light: #f8fbff; --ion-color-light: #f3f5fb;
--ion-color-light-rgb: 248, 251, 255; --ion-color-light-rgb: 243, 245, 251;
--ion-color-light-contrast: #0a1020; --ion-color-light-contrast: #1f2430;
--ion-color-light-contrast-rgb: 10, 16, 32; --ion-color-light-contrast-rgb: 31, 36, 48;
--ion-color-light-shade: #dadde0; --ion-color-light-shade: #d6d8dd;
--ion-color-light-tint: #f9fbff; --ion-color-light-tint: #f4f6fb;
--app-background: #0a1020; --app-background: #ffffff;
--app-surface: #121b36; --app-surface: #ffffff;
--app-surface-secondary: #f7faff; --app-surface-secondary: #f6f7fb;
--app-text-primary: #f8fbff; --app-text-primary: #202532;
--app-text-secondary: rgba(248, 251, 255, 0.7); --app-text-secondary: rgba(32, 37, 50, 0.68);
--app-text-tertiary: rgba(248, 251, 255, 0.5); --app-text-tertiary: rgba(32, 37, 50, 0.46);
--app-accent-soft: rgba(38, 103, 255, 0.12); --app-accent-soft: rgba(94, 106, 210, 0.12);
--app-accent-softer: rgba(38, 103, 255, 0.08); --app-accent-softer: rgba(94, 106, 210, 0.08);
--app-success-soft: rgba(21, 128, 61, 0.12); --app-success-soft: rgba(58, 166, 122, 0.12);
--app-shadow: 0 18px 48px rgba(0, 0, 0, 0.4); --app-shadow: 0 18px 48px rgba(82, 95, 140, 0.08);
} }
body { body {
@@ -83,3 +83,70 @@ body {
ion-content.home-content { ion-content.home-content {
--background: var(--app-background); --background: var(--app-background);
} }
.home-toolbar {
--background: rgba(255, 255, 255, 0.92);
--border-width: 0;
--border-color: transparent;
--color: var(--app-text-primary);
box-shadow: none;
backdrop-filter: blur(18px);
}
ion-header.home-header::after {
display: none;
}
.home-shell {
padding: calc(88px + var(--ion-safe-area-top)) 24px
calc(32px + var(--ion-safe-area-bottom));
display: flex;
flex-direction: column;
}
.minimal-home-shell {
min-height: 100%;
justify-content: flex-start;
}
.minimal-welcome-card {
text-align: left;
display: flex;
flex-direction: column;
gap: 10px;
}
.subtle-welcome-card {
max-width: 420px;
margin: 0;
padding: 28px 24px;
background: var(--app-surface-secondary);
border-radius: 28px;
}
.minimal-welcome-card h1 {
margin: 0;
color: var(--app-text-primary);
font-size: 32px;
line-height: 1.12;
letter-spacing: -0.03em;
font-weight: 700;
}
.minimal-subtitle {
margin: 0;
color: var(--app-text-secondary);
font-size: 15px;
line-height: 1.55;
}
@media (min-width: 680px) {
.home-shell {
max-width: 720px;
margin: 0 auto;
}
.minimal-welcome-card h1 {
font-size: 40px;
}
}
+1 -11
View File
@@ -17,18 +17,8 @@ const injectRouterBasename: Plugin = {
}, },
}; };
const hideScrollbars: Plugin = {
name: 'hide-scrollbars',
transformIndexHtml(html) {
return html.replace(
'</head>',
'<style>*{scrollbar-width:none!important;-ms-overflow-style:none!important}*::-webkit-scrollbar{display:none!important}</style></head>',
);
},
};
export default defineConfig({ export default defineConfig({
plugins: [injectRouterBasename, hideScrollbars, react()], plugins: [injectRouterBasename, react()],
server: { server: {
host: '0.0.0.0', host: '0.0.0.0',
port: 8100, port: 8100,
+58 -2894
View File
File diff suppressed because it is too large Load Diff