mirror of
https://bitbucket.org/FransoletThomas/tablet-app.git
synced 2025-12-06 08:31:19 +00:00
Add loading comon + docker file + update opacity and layout for main menu
This commit is contained in:
parent
47056aec7c
commit
042e1196c9
23
Dockerfile
Normal file
23
Dockerfile
Normal file
@ -0,0 +1,23 @@
|
||||
#Stage 1 - Install dependencies and build the app in a build environment
|
||||
FROM debian:latest AS build-env
|
||||
# Install flutter dependencies
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y curl git wget unzip libgconf-2-4 gdb libstdc++6 libglu1-mesa fonts-droid-fallback lib32stdc++6 python3 sed
|
||||
RUN apt-get clean
|
||||
# Clone the flutter repo
|
||||
RUN git clone https://github.com/flutter/flutter.git /usr/local/flutter
|
||||
# Set flutter path
|
||||
ENV PATH="${PATH}:/usr/local/flutter/bin:/usr/local/flutter/bin/cache/dart-sdk/bin"
|
||||
# Run flutter doctor
|
||||
RUN flutter doctor -v
|
||||
RUN flutter channel master
|
||||
RUN flutter upgrade
|
||||
# Copy files to container and build
|
||||
RUN mkdir /app/
|
||||
COPY . /app/
|
||||
WORKDIR /app/
|
||||
RUN flutter build web --no-sound-null-safety
|
||||
#--no-sound-null-safety
|
||||
# Stage 2 - Create the run-time image
|
||||
FROM nginx:1.21.1-alpine
|
||||
COPY --from=build-env /app/build/web /usr/share/nginx/html
|
||||
50
lib/Components/loading_common.dart
Normal file
50
lib/Components/loading_common.dart
Normal file
@ -0,0 +1,50 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tablet_app/constants.dart';
|
||||
|
||||
class LoadingCommon extends StatefulWidget {
|
||||
const LoadingCommon({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<LoadingCommon> createState() => _LoadingCommonState();
|
||||
}
|
||||
|
||||
class _LoadingCommonState extends State<LoadingCommon> with TickerProviderStateMixin {
|
||||
AnimationController? _controller;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
_controller = AnimationController(
|
||||
duration: const Duration(milliseconds: 5000),
|
||||
vsync: this,
|
||||
)..repeat();
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_controller!.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
Size size = MediaQuery.of(context).size;
|
||||
_controller!.forward(from: 0.0);
|
||||
_controller!.addListener(() {
|
||||
if (_controller!.isCompleted) {
|
||||
_controller!.reverse();
|
||||
}
|
||||
if(_controller!.isDismissed){
|
||||
_controller!.forward();
|
||||
}
|
||||
});
|
||||
return Center(
|
||||
child: RotationTransition(
|
||||
turns: Tween(begin: 0.0, end: 3.0).animate(_controller!),
|
||||
child: Icon(Icons.museum_outlined, color: kTestSecondColor, size: size.height*0.1),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@ import 'package:mqtt_client/mqtt_server_client.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:tablet_app/Components/Buttons/rounded_button.dart';
|
||||
import 'package:tablet_app/Components/loading.dart';
|
||||
import 'package:tablet_app/Components/loading_common.dart';
|
||||
import 'package:tablet_app/Components/rounded_input_field.dart';
|
||||
import 'package:tablet_app/Helpers/DatabaseHelper.dart';
|
||||
import 'package:tablet_app/Helpers/DeviceInfoHelper.dart';
|
||||
@ -136,7 +137,7 @@ class _ConfigViewWidget extends State<ConfigViewWidget> {
|
||||
return Center(
|
||||
child: Container(
|
||||
height: size.height * 0.2,
|
||||
child: Loading()
|
||||
child: kIsWeb ? LoadingCommon() : Loading()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ import 'package:flutter/services.dart';
|
||||
import 'package:manager_api/api.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:tablet_app/Components/loading.dart';
|
||||
import 'package:tablet_app/Components/loading_common.dart';
|
||||
import 'package:tablet_app/Helpers/MQTTHelper.dart';
|
||||
import 'package:tablet_app/Screens/Configuration/config_view.dart';
|
||||
import 'package:tablet_app/Screens/Map/map_context.dart';
|
||||
@ -228,7 +229,7 @@ class _MainViewWidget extends State<MainViewWidget> {
|
||||
child: Align(
|
||||
alignment: Alignment.bottomRight,
|
||||
child: FractionallySizedBox(
|
||||
heightFactor: 0.4,
|
||||
heightFactor: 0.25,
|
||||
child: Column(
|
||||
children: [
|
||||
Align(
|
||||
@ -262,7 +263,7 @@ class _MainViewWidget extends State<MainViewWidget> {
|
||||
} else {
|
||||
return Center(
|
||||
child: Container(
|
||||
child: Loading()
|
||||
child: kIsWeb ? LoadingCommon() : Loading()
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -305,7 +306,7 @@ boxDecoration(SectionDTO section, bool isSelected) {
|
||||
borderRadius: BorderRadius.circular(30.0),
|
||||
image: section.imageSource != null ? new DecorationImage(
|
||||
fit: !isSelected || kIsWeb ? BoxFit.cover : BoxFit.contain,
|
||||
colorFilter: !isSelected? new ColorFilter.mode(Colors.black.withOpacity(0.5), BlendMode.dstATop) : null,
|
||||
colorFilter: !isSelected? new ColorFilter.mode(Colors.black.withOpacity(0.3), BlendMode.dstATop) : null,
|
||||
image: new NetworkImage(
|
||||
section.imageSource!,
|
||||
),
|
||||
|
||||
@ -8,6 +8,7 @@ import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||
import 'package:manager_api/api.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:tablet_app/Components/loading.dart';
|
||||
import 'package:tablet_app/Components/loading_common.dart';
|
||||
import 'package:tablet_app/Models/map-marker.dart';
|
||||
import 'dart:ui' as ui;
|
||||
import 'package:flutter/widgets.dart';
|
||||
@ -81,7 +82,7 @@ class _MapViewWidget extends State<MapViewWidget> {
|
||||
} else {
|
||||
return Center(
|
||||
child: Container(
|
||||
child: Loading()
|
||||
child: kIsWeb ? LoadingCommon() : Loading()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
393
pubspec.lock
393
pubspec.lock
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user