diff --git a/.env.example b/.env.example index bd0cd9e2..8db3c900 100644 --- a/.env.example +++ b/.env.example @@ -1,53 +1,23 @@ -# Stellar Network Configuration -NEXT_PUBLIC_STELLAR_NETWORK=testnet -# Options: testnet, public - -# Application Configuration -NEXT_PUBLIC_APP_URL=http://localhost:3000 -# Your application's public URL - -# API Configuration -NEXT_PUBLIC_API_URL=http://localhost:8000/api -# Your backend API URL - -# WalletConnect Configuration -NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID=your_wallet_connect_project_id -# Get this from https://cloud.walletconnect.com/ - -# Stellar Horizon URLs (optional - defaults will be used) -NEXT_PUBLIC_HORIZON_TESTNET_URL=https://horizon-testnet.stellar.org -NEXT_PUBLIC_HORIZON_PUBLIC_URL=https://horizon.stellar.org - -# Application Metadata -NEXT_PUBLIC_APP_NAME=Boundless -NEXT_PUBLIC_APP_DESCRIPTION=Stellar-based application -NEXT_PUBLIC_APP_ICON=/logo.svg - -# Development Settings -NEXT_PUBLIC_DEBUG_MODE=false -# Enable debug logging for wallet operations - -# Feature Flags -NEXT_PUBLIC_ENABLE_WALLET_CONNECT=true -NEXT_PUBLIC_ENABLE_MULTI_WALLET=true -NEXT_PUBLIC_ENABLE_NETWORK_SWITCHING=true - -# NextAuth Configuration -NEXTAUTH_SECRET=your_nextauth_secret_here -# Generate a random string for this secret -# You can use: openssl rand -base64 32 - -NEXTAUTH_URL=http://localhost:3000 -# Your application's public URL (same as NEXT_PUBLIC_APP_URL) - -# Google OAuth Configuration -GOOGLE_CLIENT_ID=your_google_client_id -# Get this from Google Cloud Console - -GOOGLE_CLIENT_SECRET=your_google_client_secret -# Get this from Google Cloud Console - -# Environment -NODE_ENV=development -# Options: development, production, test - +# Created by Vercel CLI +GOOGLE_CLIENT_ID="" +GOOGLE_CLIENT_SECRET="your_google_client_secret" +NEXTAUTH_SECRET="PiRlq+7IyU5QJuCiVwjiuwZUGCqc/3qw1QPgLOt2AFg=" +NEXTAUTH_URL="http://localhost:3000" +NEXT_PUBLIC_API_URL="https://stage-api.boundlessfi.xyz/api" +NEXT_PUBLIC_APP_DESCRIPTION="Stellar-based application" +NEXT_PUBLIC_APP_ICON="/logo.svg" +NEXT_PUBLIC_APP_NAME="Boundless" +NEXT_PUBLIC_APP_URL="http://localhost:3000" +NEXT_PUBLIC_BETTER_AUTH_URL="https://stage-api.boundlessfi.xyz" +NEXT_PUBLIC_BOUNDLESS_PLATFORM_ADDRESS="" +NEXT_PUBLIC_DEBUG_MODE="false" +NEXT_PUBLIC_ENABLE_MULTI_WALLET="true" +NEXT_PUBLIC_ENABLE_NETWORK_SWITCHING="true" +NEXT_PUBLIC_ENABLE_WALLET_CONNECT="true" +NEXT_PUBLIC_GOOGLE_CLIENT_ID="" +NEXT_PUBLIC_HORIZON_PUBLIC_URL="https://horizon.stellar.org" +NEXT_PUBLIC_HORIZON_TESTNET_URL="https://horizon-testnet.stellar.org" +NEXT_PUBLIC_STELLAR_NETWORK="testnet" +NEXT_PUBLIC_TRUSTLESS_WORK_API_KEY="" +NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID="your_wallet_connect_project_id" +NODE_ENV="dev" \ No newline at end of file diff --git a/components/organization/hackathons/new/tabs/RewardsTab.tsx b/components/organization/hackathons/new/tabs/RewardsTab.tsx index 7867f012..0c1db47e 100644 --- a/components/organization/hackathons/new/tabs/RewardsTab.tsx +++ b/components/organization/hackathons/new/tabs/RewardsTab.tsx @@ -64,7 +64,7 @@ const PRIZE_PRESETS = { const RANK_EMOJIS = ['🥇', '🥈', '🥉', '🏅', '🏅']; interface PrizeTierProps { - tier: Omit & { id: string; currency?: string }; + tier: any; // Using any for simplicity with FieldArray types index: number; onRemove: (id: string) => void; canRemove: boolean; @@ -302,6 +302,7 @@ const ValidationAlert = ({ totalPool }: { totalPool: number }) => { export default function RewardsTab({ onSave, + onContinue, initialData, isLoading = false, }: RewardsTabProps) { @@ -432,6 +433,9 @@ export default function RewardsTab({ if (onSave) { await onSave(data); } + if (onContinue) { + onContinue(); + } } catch (error: any) { const message = error.response?.data?.message || error.message; const errorMessage = Array.isArray(message) ? message[0] : message; @@ -538,10 +542,31 @@ export default function RewardsTab({ {form.formState.errors.prizeTiers && ( -

- - {form.formState.errors.prizeTiers.message} -

+
+

+ + {form.formState.errors.prizeTiers.message || + 'Validation error in prize tiers'} +

+
+

+ To proceed, you must use a Prize Preset to + configure your rewards. Presets automatically apply the + required ranking and score thresholds needed for the system. +

+
+

+ Action Required: +

+

+ Scroll up and select one of the{' '} + Prize Presets (Standard, Winner Takes Most, + etc.). You can still adjust the total prize pool amounts + after selecting a preset. +

+
+
+
)}