Commit 3814b22d authored by valdi's avatar valdi

success multiple select

parent 3b58ecc8
...@@ -7,17 +7,9 @@ class QueueBloc extends Cubit<List<OrderQueue>> { ...@@ -7,17 +7,9 @@ class QueueBloc extends Cubit<List<OrderQueue>> {
Future<List<OrderQueue>> getData() async { Future<List<OrderQueue>> getData() async {
var apiQueue = await ApiQueue.getQueue(); var apiQueue = await ApiQueue.getQueue();
return apiQueue; return apiQueue.where((i) => (i.status == "In Queue")).toList();
} }
// List<OrderQueue> queues = [
// OrderQueue(id: "1", queue_number: '123', status: 'Ready'),
// OrderQueue(id: "2", queue_number: '1234', status: 'Ready'),
// OrderQueue(id: "3", queue_number: '12345', status: 'queue'),
// OrderQueue(id: "4", queue_number: '123456', status: 'queue'),
// OrderQueue(id: "5", queue_number: '12345633', status: 'Ready'),
// ];
// QueueBloc() : super(Future.empty); // QueueBloc() : super(Future.empty);
void queueList() { void queueList() {
...@@ -26,4 +18,12 @@ class QueueBloc extends Cubit<List<OrderQueue>> { ...@@ -26,4 +18,12 @@ class QueueBloc extends Cubit<List<OrderQueue>> {
emit(value); emit(value);
}); });
} }
onPressed(OrderQueue thisQueue) {
var index = state.indexOf(thisQueue);
thisQueue.isSelected = !thisQueue.isSelected;
state[index] = thisQueue;
print('berubah');
emit(state);
}
} }
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:manager_queue/models/queue.dart';
import '../api.dart';
part 'queue_state.dart';
class QueueCubit extends Cubit<QueueState> {
QueueCubit() : super(QueueInitial());
Future<void> getData() async {
emit(QueueLoading());
Future.delayed(const Duration(milliseconds: 2000), () async {
var apiQueue = await ApiQueue.getQueue();
var data = apiQueue.where((i) => (i.status == "In Queue")).toList();
emit(QueueLoaded(data));
});
}
onPressed(List<OrderQueue> active, OrderQueue toUpdate) {
emit(QueueInitial());
var index = active.indexOf(toUpdate);
toUpdate.isSelected = !toUpdate.isSelected;
active[index] = toUpdate;
emit(QueueUpdated(active));
}
}
part of 'queue_cubit.dart';
abstract class QueueState extends Equatable {
const QueueState();
@override
List<Object> get props => [];
}
class QueueInitial extends QueueState {}
class QueueLoading extends QueueState {}
class QueueLoaded extends QueueState {
final List<OrderQueue> queues;
QueueLoaded(this.queues);
@override
List<Object> get props => [queues];
}
class QueueUpdated extends QueueState {
final List<OrderQueue> queues;
QueueUpdated(this.queues);
@override
List<Object> get props => [queues];
}
...@@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; ...@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:manager_queue/bloc/queue_bloc.dart'; import 'package:manager_queue/bloc/queue_bloc.dart';
import 'package:manager_queue/bloc/ready_bloc.dart'; import 'package:manager_queue/bloc/ready_bloc.dart';
import 'package:manager_queue/cubit/queue_cubit.dart';
import 'package:manager_queue/main_page.dart'; import 'package:manager_queue/main_page.dart';
import 'bloc/selected_queue_bloc.dart'; import 'bloc/selected_queue_bloc.dart';
...@@ -20,6 +21,7 @@ class MyApp extends StatelessWidget { ...@@ -20,6 +21,7 @@ class MyApp extends StatelessWidget {
BlocProvider(create: (_) => QueueBloc()), BlocProvider(create: (_) => QueueBloc()),
BlocProvider(create: (_) => ReadyBloc()), BlocProvider(create: (_) => ReadyBloc()),
BlocProvider(create: (_) => SelectedQueueBloc()), BlocProvider(create: (_) => SelectedQueueBloc()),
BlocProvider(create: (_) => QueueCubit()),
], child: MainPage()), ], child: MainPage()),
}, },
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
......
This diff is collapsed.
...@@ -2,15 +2,20 @@ class OrderQueue { ...@@ -2,15 +2,20 @@ class OrderQueue {
final String id; final String id;
final String queue_number; final String queue_number;
final String status; final String status;
bool isSelected = false;
OrderQueue( OrderQueue(
{required this.id, required this.queue_number, required this.status}); {required this.id,
required this.queue_number,
required this.status,
required this.isSelected});
factory OrderQueue.createOrderQueue(Map<String, dynamic> json) { factory OrderQueue.createOrderQueue(Map<String, dynamic> json) {
return OrderQueue( return OrderQueue(
id: json['id'].toString(), id: json['id'].toString(),
queue_number: json['queue_number'].toString(), queue_number: json['queue_number'].toString(),
status: json['status'].toString(), status: json['status'].toString(),
isSelected: false,
); );
} }
} }
...@@ -57,6 +57,13 @@ packages: ...@@ -57,6 +57,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.4" version: "1.0.4"
equatable:
dependency: "direct main"
description:
name: equatable
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
......
...@@ -28,6 +28,7 @@ environment: ...@@ -28,6 +28,7 @@ environment:
# versions available, run `flutter pub outdated`. # versions available, run `flutter pub outdated`.
dependencies: dependencies:
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
equatable: ^2.0.3
flutter: flutter:
sdk: flutter sdk: flutter
flutter_bloc: ^8.0.1 flutter_bloc: ^8.0.1
...@@ -35,12 +36,6 @@ dependencies: ...@@ -35,12 +36,6 @@ dependencies:
multi_select_flutter: ^4.0.0 multi_select_flutter: ^4.0.0
dev_dependencies: dev_dependencies:
# The "flutter_lints" package below contains a set of recommended lints to
# encourage good coding practices. The lint set provided by the package is
# activated in the `analysis_options.yaml` file located at the root of your
# package. See that file for information about deactivating specific lint
# rules and activating additional ones.
flutter_lints: ^1.0.0 flutter_lints: ^1.0.0
flutter_test: flutter_test:
sdk: flutter sdk: flutter
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment