Commit 3814b22d authored by valdi's avatar valdi

success multiple select

parent 3b58ecc8
......@@ -7,17 +7,9 @@ class QueueBloc extends Cubit<List<OrderQueue>> {
Future<List<OrderQueue>> getData() async {
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);
void queueList() {
......@@ -26,4 +18,12 @@ class QueueBloc extends Cubit<List<OrderQueue>> {
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';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:manager_queue/bloc/queue_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 'bloc/selected_queue_bloc.dart';
......@@ -20,6 +21,7 @@ class MyApp extends StatelessWidget {
BlocProvider(create: (_) => QueueBloc()),
BlocProvider(create: (_) => ReadyBloc()),
BlocProvider(create: (_) => SelectedQueueBloc()),
BlocProvider(create: (_) => QueueCubit()),
], child: MainPage()),
},
debugShowCheckedModeBanner: false,
......
This diff is collapsed.
......@@ -2,15 +2,20 @@ class OrderQueue {
final String id;
final String queue_number;
final String status;
bool isSelected = false;
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) {
return OrderQueue(
id: json['id'].toString(),
queue_number: json['queue_number'].toString(),
status: json['status'].toString(),
isSelected: false,
);
}
}
......@@ -57,6 +57,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.4"
equatable:
dependency: "direct main"
description:
name: equatable
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
fake_async:
dependency: transitive
description:
......
......@@ -28,6 +28,7 @@ environment:
# versions available, run `flutter pub outdated`.
dependencies:
cupertino_icons: ^1.0.2
equatable: ^2.0.3
flutter:
sdk: flutter
flutter_bloc: ^8.0.1
......@@ -35,12 +36,6 @@ dependencies:
multi_select_flutter: ^4.0.0
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_test:
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