43 lines
1.1 KiB
Dart
43 lines
1.1 KiB
Dart
import 'dart:html' as html;
|
|
import 'dart:io' as io;
|
|
import 'package:flutter/material.dart';
|
|
import 'chat_screen.dart';
|
|
import 'backend.dart';
|
|
|
|
class Config {
|
|
static String? backendUrl; // Declare it as nullable
|
|
|
|
static void loadConfig() {
|
|
// Check the platform for web or other
|
|
if (html.window.location.origin.isNotEmpty) {
|
|
// For web applications
|
|
backendUrl = html.window.location.origin; // Get the server URL from window.location
|
|
} else if (io.Platform.environment.containsKey('BACKEND_URL')) {
|
|
// For Android or other platforms, check for the environment variable
|
|
backendUrl = io.Platform.environment['BACKEND_URL'];
|
|
} else {
|
|
// If no value is determined, set it to null
|
|
backendUrl = null;
|
|
}
|
|
}
|
|
}
|
|
|
|
void main() {
|
|
Config.loadConfig(); // Load the configuration before running the app
|
|
|
|
Backend.setup('${Config.backendUrl}/ws');
|
|
runApp(const MyApp());
|
|
}
|
|
|
|
class MyApp extends StatelessWidget {
|
|
const MyApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
title: 'Flutter Chat',
|
|
theme: ThemeData.dark(),
|
|
home: const ChatScreen(),
|
|
);
|
|
}
|
|
} |