Compare commits

..

1 Commits

Author SHA1 Message Date
AppCakes 304f3a8ca9 build: 6e92ee4f-08ae-4917-b7c6-d7db21480fec 2026-07-11 10:30:55 +00:00
14 changed files with 4221 additions and 3070 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.qoutelink.app" applicationId "com.basedeployer.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.qoutelink.app" /> <data android:scheme="com.basedeployer.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">Qoutelink</string> <string name="app_name">Base Deployer</string>
<string name="title_activity_main">Qoutelink</string> <string name="title_activity_main">Base Deployer</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.qoutelink.app', appId: 'com.basedeployer.app',
appName: 'Qoutelink', appName: 'Base Deployer',
webDir: 'dist', webDir: 'dist',
plugins: { plugins: {
FirebaseAuthentication: { FirebaseAuthentication: {
+15 -2826
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.qoutelink.app; PRODUCT_BUNDLE_IDENTIFIER = com.basedeployer.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.qoutelink.app; PRODUCT_BUNDLE_IDENTIFIER = com.basedeployer.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>Qoutelink</string> <string>Base Deployer</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.qoutelink.app</string> <string>com.basedeployer.app</string>
<key>CFBundleURLSchemes</key> <key>CFBundleURLSchemes</key>
<array> <array>
<string>com.qoutelink.app</string> <string>com.basedeployer.app</string>
</array> </array>
</dict> </dict>
</array> </array>
+7 -1
View File
@@ -18,13 +18,17 @@
"@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",
"@supabase/supabase-js": "^2.0.0", "@reown/appkit": "^1.8.21",
"@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",
@@ -34,6 +38,8 @@
"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"
}, },
+69 -18
View File
@@ -1,24 +1,72 @@
import React from "react"; import React, { useEffect } 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 "@ionic/react/css/core.css"; import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import "@ionic/react/css/normalize.css"; import { WagmiProvider } from 'wagmi';
import "@ionic/react/css/structure.css"; import { WagmiAdapter } from '@reown/appkit-adapter-wagmi';
import "@ionic/react/css/typography.css"; import { base, type AppKitNetwork } from '@reown/appkit/networks';
import "@ionic/react/css/padding.css"; import { createAppKit } from '@reown/appkit/react';
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"; import { setStatusBarStyle, Style } from './utils/statusBar';
import Home from "./pages/Home"; import '@ionic/react/css/core.css';
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';
const App: React.FC = () => ( import './theme/variables.css';
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>
@@ -27,6 +75,9 @@ const App: React.FC = () => (
</IonRouterOutlet> </IonRouterOutlet>
</IonReactRouter> </IonReactRouter>
</IonApp> </IonApp>
); </QueryClientProvider>
</WagmiProvider>
);
};
export default App; export default App;
+1148 -22
View File
File diff suppressed because it is too large Load Diff
+54 -121
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: #5e6ad2; --ion-color-primary: #2667ff;
--ion-color-primary-rgb: 94, 106, 210; --ion-color-primary-rgb: 38, 103, 255;
--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: #535db9; --ion-color-primary-shade: #215be0;
--ion-color-primary-tint: #6e79d7; --ion-color-primary-tint: #3c76ff;
--ion-color-secondary: #7a89f4; --ion-color-secondary: #7cc7ff;
--ion-color-secondary-rgb: 122, 137, 244; --ion-color-secondary-rgb: 124, 199, 255;
--ion-color-secondary-contrast: #ffffff; --ion-color-secondary-contrast: #0a1020;
--ion-color-secondary-contrast-rgb: 255, 255, 255; --ion-color-secondary-contrast-rgb: 10, 16, 32;
--ion-color-secondary-shade: #6b79d7; --ion-color-secondary-shade: #6dafdf;
--ion-color-secondary-tint: #8895f5; --ion-color-secondary-tint: #89cdff;
--ion-color-tertiary: #8f78d8; --ion-color-tertiary: #9fd6ff;
--ion-color-tertiary-rgb: 143, 120, 216; --ion-color-tertiary-rgb: 159, 214, 255;
--ion-color-tertiary-contrast: #ffffff; --ion-color-tertiary-contrast: #0a1020;
--ion-color-tertiary-contrast-rgb: 255, 255, 255; --ion-color-tertiary-contrast-rgb: 10, 16, 32;
--ion-color-tertiary-shade: #7e6ac0; --ion-color-tertiary-shade: #8cbcb;
--ion-color-tertiary-tint: #9a86dc; --ion-color-tertiary-tint: #a9daff;
--ion-color-success: #3aa67a; --ion-color-success: #15803d;
--ion-color-success-rgb: 58, 166, 122; --ion-color-success-rgb: 21, 128, 61;
--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: #33926b; --ion-color-success-shade: #127136;
--ion-color-success-tint: #4eb088; --ion-color-success-tint: #2c8d50;
--ion-color-warning: #dfb25a; --ion-color-warning: #eab308;
--ion-color-warning-rgb: 223, 178, 90; --ion-color-warning-rgb: 234, 179, 8;
--ion-color-warning-contrast: #2d2520; --ion-color-warning-contrast: #0a1020;
--ion-color-warning-contrast-rgb: 45, 37, 32; --ion-color-warning-contrast-rgb: 10, 16, 32;
--ion-color-warning-shade: #c49d4f; --ion-color-warning-shade: #ce9d07;
--ion-color-warning-tint: #e2bb6b; --ion-color-warning-tint: #ecbb21;
--ion-color-danger: #cf6679; --ion-color-danger: #c2410c;
--ion-color-danger-rgb: 207, 102, 121; --ion-color-danger-rgb: 194, 65, 12;
--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: #b65a6a; --ion-color-danger-shade: #ab390a;
--ion-color-danger-tint: #d57587; --ion-color-danger-tint: #c85424;
--ion-color-dark: #1f2430; --ion-color-dark: #0a1020;
--ion-color-dark-rgb: 31, 36, 48; --ion-color-dark-rgb: 10, 16, 32;
--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: #1b202a; --ion-color-dark-shade: #090e1c;
--ion-color-dark-tint: #353946; --ion-color-dark-tint: #222836;
--ion-color-medium: #7f8697; --ion-color-medium: #6b7a99;
--ion-color-medium-rgb: 127, 134, 151; --ion-color-medium-rgb: 107, 122, 153;
--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: #707686; --ion-color-medium-shade: #5e6b87;
--ion-color-medium-tint: #8c93a2; --ion-color-medium-tint: #7a87a3;
--ion-color-light: #f3f5fb; --ion-color-light: #f8fbff;
--ion-color-light-rgb: 243, 245, 251; --ion-color-light-rgb: 248, 251, 255;
--ion-color-light-contrast: #1f2430; --ion-color-light-contrast: #0a1020;
--ion-color-light-contrast-rgb: 31, 36, 48; --ion-color-light-contrast-rgb: 10, 16, 32;
--ion-color-light-shade: #d6d8dd; --ion-color-light-shade: #dadde0;
--ion-color-light-tint: #f4f6fb; --ion-color-light-tint: #f9fbff;
--app-background: #ffffff; --app-background: #0a1020;
--app-surface: #ffffff; --app-surface: #121b36;
--app-surface-secondary: #f6f7fb; --app-surface-secondary: #f7faff;
--app-text-primary: #202532; --app-text-primary: #f8fbff;
--app-text-secondary: rgba(32, 37, 50, 0.68); --app-text-secondary: rgba(248, 251, 255, 0.7);
--app-text-tertiary: rgba(32, 37, 50, 0.46); --app-text-tertiary: rgba(248, 251, 255, 0.5);
--app-accent-soft: rgba(94, 106, 210, 0.12); --app-accent-soft: rgba(38, 103, 255, 0.12);
--app-accent-softer: rgba(94, 106, 210, 0.08); --app-accent-softer: rgba(38, 103, 255, 0.08);
--app-success-soft: rgba(58, 166, 122, 0.12); --app-success-soft: rgba(21, 128, 61, 0.12);
--app-shadow: 0 18px 48px rgba(82, 95, 140, 0.08); --app-shadow: 0 18px 48px rgba(0, 0, 0, 0.4);
} }
body { body {
@@ -83,70 +83,3 @@ 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;
}
}
+11 -1
View File
@@ -17,8 +17,18 @@ 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, react()], plugins: [injectRouterBasename, hideScrollbars, react()],
server: { server: {
host: '0.0.0.0', host: '0.0.0.0',
port: 8100, port: 8100,
+2894 -58
View File
File diff suppressed because it is too large Load Diff