dev #1
@ -14,7 +14,7 @@ class CustomTextField extends StatelessWidget {
|
|||||||
final Widget? prefixIcon;
|
final Widget? prefixIcon;
|
||||||
final Widget? suffixIcon;
|
final Widget? suffixIcon;
|
||||||
final bool readOnly;
|
final bool readOnly;
|
||||||
final int? maxLines;
|
final int maxLines;
|
||||||
final String? Function(String?)? validator;
|
final String? Function(String?)? validator;
|
||||||
|
|
||||||
const CustomTextField({
|
const CustomTextField({
|
||||||
@ -30,7 +30,7 @@ class CustomTextField extends StatelessWidget {
|
|||||||
this.prefixIcon,
|
this.prefixIcon,
|
||||||
this.suffixIcon,
|
this.suffixIcon,
|
||||||
this.readOnly = false,
|
this.readOnly = false,
|
||||||
this.maxLines,
|
this.maxLines = 1,
|
||||||
this.validator,
|
this.validator,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
53
lib/data/datasources/table_remote_datasource.dart
Normal file
53
lib/data/datasources/table_remote_datasource.dart
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
import 'dart:developer';
|
||||||
|
import 'package:dartz/dartz.dart';
|
||||||
|
import 'package:dio/dio.dart';
|
||||||
|
import 'package:enaklo_pos/core/network/dio_client.dart';
|
||||||
|
import '../../core/constants/variables.dart';
|
||||||
|
import 'auth_local_datasource.dart';
|
||||||
|
|
||||||
|
class TableRemoteDataSource {
|
||||||
|
final Dio dio = DioClient.instance;
|
||||||
|
|
||||||
|
Future<Either<String, bool>> createTable({
|
||||||
|
required String tableName,
|
||||||
|
required int capacity,
|
||||||
|
required String location,
|
||||||
|
}) async {
|
||||||
|
try {
|
||||||
|
final authData = await AuthLocalDataSource().getAuthData();
|
||||||
|
final url = '${Variables.baseUrl}/api/v1/tables';
|
||||||
|
|
||||||
|
final response = await dio.post(
|
||||||
|
url,
|
||||||
|
data: {
|
||||||
|
"outlet_id": authData.user?.outletId,
|
||||||
|
"table_name": tableName,
|
||||||
|
"capacity": capacity,
|
||||||
|
"location": location,
|
||||||
|
"status": "available",
|
||||||
|
"is_active": true,
|
||||||
|
"position_x": 200,
|
||||||
|
"position_y": 200,
|
||||||
|
},
|
||||||
|
options: Options(
|
||||||
|
headers: {
|
||||||
|
'Authorization': 'Bearer ${authData.token}',
|
||||||
|
'Accept': 'application/json',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
if (response.statusCode == 200 || response.statusCode == 201) {
|
||||||
|
return Right(true);
|
||||||
|
} else {
|
||||||
|
return const Left('Failed to create table');
|
||||||
|
}
|
||||||
|
} on DioException catch (e) {
|
||||||
|
log("Dio error: ${e.message}");
|
||||||
|
return Left(e.response?.data['message'] ?? 'Gagal membuat table');
|
||||||
|
} catch (e) {
|
||||||
|
log("Unexpected error: $e");
|
||||||
|
return const Left('Unexpected error occurred');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2,6 +2,7 @@ import 'dart:developer';
|
|||||||
import 'package:enaklo_pos/core/constants/theme.dart';
|
import 'package:enaklo_pos/core/constants/theme.dart';
|
||||||
import 'package:enaklo_pos/data/datasources/customer_remote_datasource.dart';
|
import 'package:enaklo_pos/data/datasources/customer_remote_datasource.dart';
|
||||||
import 'package:enaklo_pos/data/datasources/outlet_remote_data_source.dart';
|
import 'package:enaklo_pos/data/datasources/outlet_remote_data_source.dart';
|
||||||
|
import 'package:enaklo_pos/data/datasources/table_remote_datasource.dart';
|
||||||
import 'package:enaklo_pos/presentation/customer/bloc/customer_form/customer_form_bloc.dart';
|
import 'package:enaklo_pos/presentation/customer/bloc/customer_form/customer_form_bloc.dart';
|
||||||
import 'package:enaklo_pos/presentation/customer/bloc/customer_loader/customer_loader_bloc.dart';
|
import 'package:enaklo_pos/presentation/customer/bloc/customer_loader/customer_loader_bloc.dart';
|
||||||
import 'package:enaklo_pos/presentation/home/bloc/order_form/order_form_bloc.dart';
|
import 'package:enaklo_pos/presentation/home/bloc/order_form/order_form_bloc.dart';
|
||||||
@ -147,7 +148,7 @@ class _MyAppState extends State<MyApp> {
|
|||||||
create: (context) => TransactionReportBloc(OrderRemoteDatasource()),
|
create: (context) => TransactionReportBloc(OrderRemoteDatasource()),
|
||||||
),
|
),
|
||||||
BlocProvider(
|
BlocProvider(
|
||||||
create: (context) => CreateTableBloc(),
|
create: (context) => CreateTableBloc(TableRemoteDataSource()),
|
||||||
),
|
),
|
||||||
BlocProvider(
|
BlocProvider(
|
||||||
create: (context) => ChangePositionTableBloc(),
|
create: (context) => ChangePositionTableBloc(),
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
import 'dart:ui';
|
|
||||||
|
|
||||||
import 'package:bloc/bloc.dart';
|
import 'package:bloc/bloc.dart';
|
||||||
import 'package:enaklo_pos/data/datasources/product_local_datasource.dart';
|
import 'package:enaklo_pos/data/datasources/table_remote_datasource.dart';
|
||||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||||
|
|
||||||
part 'create_table_event.dart';
|
part 'create_table_event.dart';
|
||||||
@ -9,12 +7,19 @@ part 'create_table_state.dart';
|
|||||||
part 'create_table_bloc.freezed.dart';
|
part 'create_table_bloc.freezed.dart';
|
||||||
|
|
||||||
class CreateTableBloc extends Bloc<CreateTableEvent, CreateTableState> {
|
class CreateTableBloc extends Bloc<CreateTableEvent, CreateTableState> {
|
||||||
CreateTableBloc() : super(_Initial()) {
|
final TableRemoteDataSource _tableRemoteDataSource;
|
||||||
|
CreateTableBloc(this._tableRemoteDataSource)
|
||||||
|
: super(CreateTableState.initial()) {
|
||||||
on<_CreateTable>((event, emit) async {
|
on<_CreateTable>((event, emit) async {
|
||||||
emit(_Loading());
|
emit(_Loading());
|
||||||
await ProductLocalDatasource.instance
|
final result = await _tableRemoteDataSource.createTable(
|
||||||
.createTableManagement(event.tableName, event.position);
|
tableName: event.tableName,
|
||||||
emit(_Success('Create Table Success'));
|
capacity: event.capacity,
|
||||||
|
location: event.location,
|
||||||
|
);
|
||||||
|
|
||||||
|
result.fold((l) => emit(_Error(l)),
|
||||||
|
(r) => emit(_Success('Meja berhasil dibuat')));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,19 +19,22 @@ mixin _$CreateTableEvent {
|
|||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult when<TResult extends Object?>({
|
TResult when<TResult extends Object?>({
|
||||||
required TResult Function() started,
|
required TResult Function() started,
|
||||||
required TResult Function(String tableName, Offset position) createTable,
|
required TResult Function(String tableName, int capacity, String location)
|
||||||
|
createTable,
|
||||||
}) =>
|
}) =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult? whenOrNull<TResult extends Object?>({
|
TResult? whenOrNull<TResult extends Object?>({
|
||||||
TResult? Function()? started,
|
TResult? Function()? started,
|
||||||
TResult? Function(String tableName, Offset position)? createTable,
|
TResult? Function(String tableName, int capacity, String location)?
|
||||||
|
createTable,
|
||||||
}) =>
|
}) =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult maybeWhen<TResult extends Object?>({
|
TResult maybeWhen<TResult extends Object?>({
|
||||||
TResult Function()? started,
|
TResult Function()? started,
|
||||||
TResult Function(String tableName, Offset position)? createTable,
|
TResult Function(String tableName, int capacity, String location)?
|
||||||
|
createTable,
|
||||||
required TResult orElse(),
|
required TResult orElse(),
|
||||||
}) =>
|
}) =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
@ -119,7 +122,8 @@ class _$StartedImpl implements _Started {
|
|||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult when<TResult extends Object?>({
|
TResult when<TResult extends Object?>({
|
||||||
required TResult Function() started,
|
required TResult Function() started,
|
||||||
required TResult Function(String tableName, Offset position) createTable,
|
required TResult Function(String tableName, int capacity, String location)
|
||||||
|
createTable,
|
||||||
}) {
|
}) {
|
||||||
return started();
|
return started();
|
||||||
}
|
}
|
||||||
@ -128,7 +132,8 @@ class _$StartedImpl implements _Started {
|
|||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult? whenOrNull<TResult extends Object?>({
|
TResult? whenOrNull<TResult extends Object?>({
|
||||||
TResult? Function()? started,
|
TResult? Function()? started,
|
||||||
TResult? Function(String tableName, Offset position)? createTable,
|
TResult? Function(String tableName, int capacity, String location)?
|
||||||
|
createTable,
|
||||||
}) {
|
}) {
|
||||||
return started?.call();
|
return started?.call();
|
||||||
}
|
}
|
||||||
@ -137,7 +142,8 @@ class _$StartedImpl implements _Started {
|
|||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult maybeWhen<TResult extends Object?>({
|
TResult maybeWhen<TResult extends Object?>({
|
||||||
TResult Function()? started,
|
TResult Function()? started,
|
||||||
TResult Function(String tableName, Offset position)? createTable,
|
TResult Function(String tableName, int capacity, String location)?
|
||||||
|
createTable,
|
||||||
required TResult orElse(),
|
required TResult orElse(),
|
||||||
}) {
|
}) {
|
||||||
if (started != null) {
|
if (started != null) {
|
||||||
@ -188,7 +194,7 @@ abstract class _$$CreateTableImplCopyWith<$Res> {
|
|||||||
_$CreateTableImpl value, $Res Function(_$CreateTableImpl) then) =
|
_$CreateTableImpl value, $Res Function(_$CreateTableImpl) then) =
|
||||||
__$$CreateTableImplCopyWithImpl<$Res>;
|
__$$CreateTableImplCopyWithImpl<$Res>;
|
||||||
@useResult
|
@useResult
|
||||||
$Res call({String tableName, Offset position});
|
$Res call({String tableName, int capacity, String location});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @nodoc
|
/// @nodoc
|
||||||
@ -205,17 +211,22 @@ class __$$CreateTableImplCopyWithImpl<$Res>
|
|||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
Object? tableName = null,
|
Object? tableName = null,
|
||||||
Object? position = null,
|
Object? capacity = null,
|
||||||
|
Object? location = null,
|
||||||
}) {
|
}) {
|
||||||
return _then(_$CreateTableImpl(
|
return _then(_$CreateTableImpl(
|
||||||
null == tableName
|
tableName: null == tableName
|
||||||
? _value.tableName
|
? _value.tableName
|
||||||
: tableName // ignore: cast_nullable_to_non_nullable
|
: tableName // ignore: cast_nullable_to_non_nullable
|
||||||
as String,
|
as String,
|
||||||
null == position
|
capacity: null == capacity
|
||||||
? _value.position
|
? _value.capacity
|
||||||
: position // ignore: cast_nullable_to_non_nullable
|
: capacity // ignore: cast_nullable_to_non_nullable
|
||||||
as Offset,
|
as int,
|
||||||
|
location: null == location
|
||||||
|
? _value.location
|
||||||
|
: location // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -223,16 +234,21 @@ class __$$CreateTableImplCopyWithImpl<$Res>
|
|||||||
/// @nodoc
|
/// @nodoc
|
||||||
|
|
||||||
class _$CreateTableImpl implements _CreateTable {
|
class _$CreateTableImpl implements _CreateTable {
|
||||||
const _$CreateTableImpl(this.tableName, this.position);
|
const _$CreateTableImpl(
|
||||||
|
{required this.tableName,
|
||||||
|
required this.capacity,
|
||||||
|
required this.location});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
final String tableName;
|
final String tableName;
|
||||||
@override
|
@override
|
||||||
final Offset position;
|
final int capacity;
|
||||||
|
@override
|
||||||
|
final String location;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'CreateTableEvent.createTable(tableName: $tableName, position: $position)';
|
return 'CreateTableEvent.createTable(tableName: $tableName, capacity: $capacity, location: $location)';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -242,12 +258,14 @@ class _$CreateTableImpl implements _CreateTable {
|
|||||||
other is _$CreateTableImpl &&
|
other is _$CreateTableImpl &&
|
||||||
(identical(other.tableName, tableName) ||
|
(identical(other.tableName, tableName) ||
|
||||||
other.tableName == tableName) &&
|
other.tableName == tableName) &&
|
||||||
(identical(other.position, position) ||
|
(identical(other.capacity, capacity) ||
|
||||||
other.position == position));
|
other.capacity == capacity) &&
|
||||||
|
(identical(other.location, location) ||
|
||||||
|
other.location == location));
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(runtimeType, tableName, position);
|
int get hashCode => Object.hash(runtimeType, tableName, capacity, location);
|
||||||
|
|
||||||
/// Create a copy of CreateTableEvent
|
/// Create a copy of CreateTableEvent
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@ -261,29 +279,32 @@ class _$CreateTableImpl implements _CreateTable {
|
|||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult when<TResult extends Object?>({
|
TResult when<TResult extends Object?>({
|
||||||
required TResult Function() started,
|
required TResult Function() started,
|
||||||
required TResult Function(String tableName, Offset position) createTable,
|
required TResult Function(String tableName, int capacity, String location)
|
||||||
|
createTable,
|
||||||
}) {
|
}) {
|
||||||
return createTable(tableName, position);
|
return createTable(tableName, capacity, location);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult? whenOrNull<TResult extends Object?>({
|
TResult? whenOrNull<TResult extends Object?>({
|
||||||
TResult? Function()? started,
|
TResult? Function()? started,
|
||||||
TResult? Function(String tableName, Offset position)? createTable,
|
TResult? Function(String tableName, int capacity, String location)?
|
||||||
|
createTable,
|
||||||
}) {
|
}) {
|
||||||
return createTable?.call(tableName, position);
|
return createTable?.call(tableName, capacity, location);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
TResult maybeWhen<TResult extends Object?>({
|
TResult maybeWhen<TResult extends Object?>({
|
||||||
TResult Function()? started,
|
TResult Function()? started,
|
||||||
TResult Function(String tableName, Offset position)? createTable,
|
TResult Function(String tableName, int capacity, String location)?
|
||||||
|
createTable,
|
||||||
required TResult orElse(),
|
required TResult orElse(),
|
||||||
}) {
|
}) {
|
||||||
if (createTable != null) {
|
if (createTable != null) {
|
||||||
return createTable(tableName, position);
|
return createTable(tableName, capacity, location);
|
||||||
}
|
}
|
||||||
return orElse();
|
return orElse();
|
||||||
}
|
}
|
||||||
@ -321,11 +342,14 @@ class _$CreateTableImpl implements _CreateTable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
abstract class _CreateTable implements CreateTableEvent {
|
abstract class _CreateTable implements CreateTableEvent {
|
||||||
const factory _CreateTable(final String tableName, final Offset position) =
|
const factory _CreateTable(
|
||||||
_$CreateTableImpl;
|
{required final String tableName,
|
||||||
|
required final int capacity,
|
||||||
|
required final String location}) = _$CreateTableImpl;
|
||||||
|
|
||||||
String get tableName;
|
String get tableName;
|
||||||
Offset get position;
|
int get capacity;
|
||||||
|
String get location;
|
||||||
|
|
||||||
/// Create a copy of CreateTableEvent
|
/// Create a copy of CreateTableEvent
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@ -341,6 +365,7 @@ mixin _$CreateTableState {
|
|||||||
required TResult Function() initial,
|
required TResult Function() initial,
|
||||||
required TResult Function() loading,
|
required TResult Function() loading,
|
||||||
required TResult Function(String message) success,
|
required TResult Function(String message) success,
|
||||||
|
required TResult Function(String message) error,
|
||||||
}) =>
|
}) =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
@ -348,6 +373,7 @@ mixin _$CreateTableState {
|
|||||||
TResult? Function()? initial,
|
TResult? Function()? initial,
|
||||||
TResult? Function()? loading,
|
TResult? Function()? loading,
|
||||||
TResult? Function(String message)? success,
|
TResult? Function(String message)? success,
|
||||||
|
TResult? Function(String message)? error,
|
||||||
}) =>
|
}) =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
@ -355,6 +381,7 @@ mixin _$CreateTableState {
|
|||||||
TResult Function()? initial,
|
TResult Function()? initial,
|
||||||
TResult Function()? loading,
|
TResult Function()? loading,
|
||||||
TResult Function(String message)? success,
|
TResult Function(String message)? success,
|
||||||
|
TResult Function(String message)? error,
|
||||||
required TResult orElse(),
|
required TResult orElse(),
|
||||||
}) =>
|
}) =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
@ -363,6 +390,7 @@ mixin _$CreateTableState {
|
|||||||
required TResult Function(_Initial value) initial,
|
required TResult Function(_Initial value) initial,
|
||||||
required TResult Function(_Loading value) loading,
|
required TResult Function(_Loading value) loading,
|
||||||
required TResult Function(_Success value) success,
|
required TResult Function(_Success value) success,
|
||||||
|
required TResult Function(_Error value) error,
|
||||||
}) =>
|
}) =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
@ -370,6 +398,7 @@ mixin _$CreateTableState {
|
|||||||
TResult? Function(_Initial value)? initial,
|
TResult? Function(_Initial value)? initial,
|
||||||
TResult? Function(_Loading value)? loading,
|
TResult? Function(_Loading value)? loading,
|
||||||
TResult? Function(_Success value)? success,
|
TResult? Function(_Success value)? success,
|
||||||
|
TResult? Function(_Error value)? error,
|
||||||
}) =>
|
}) =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
@optionalTypeArgs
|
@optionalTypeArgs
|
||||||
@ -377,6 +406,7 @@ mixin _$CreateTableState {
|
|||||||
TResult Function(_Initial value)? initial,
|
TResult Function(_Initial value)? initial,
|
||||||
TResult Function(_Loading value)? loading,
|
TResult Function(_Loading value)? loading,
|
||||||
TResult Function(_Success value)? success,
|
TResult Function(_Success value)? success,
|
||||||
|
TResult Function(_Error value)? error,
|
||||||
required TResult orElse(),
|
required TResult orElse(),
|
||||||
}) =>
|
}) =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
@ -447,6 +477,7 @@ class _$InitialImpl implements _Initial {
|
|||||||
required TResult Function() initial,
|
required TResult Function() initial,
|
||||||
required TResult Function() loading,
|
required TResult Function() loading,
|
||||||
required TResult Function(String message) success,
|
required TResult Function(String message) success,
|
||||||
|
required TResult Function(String message) error,
|
||||||
}) {
|
}) {
|
||||||
return initial();
|
return initial();
|
||||||
}
|
}
|
||||||
@ -457,6 +488,7 @@ class _$InitialImpl implements _Initial {
|
|||||||
TResult? Function()? initial,
|
TResult? Function()? initial,
|
||||||
TResult? Function()? loading,
|
TResult? Function()? loading,
|
||||||
TResult? Function(String message)? success,
|
TResult? Function(String message)? success,
|
||||||
|
TResult? Function(String message)? error,
|
||||||
}) {
|
}) {
|
||||||
return initial?.call();
|
return initial?.call();
|
||||||
}
|
}
|
||||||
@ -467,6 +499,7 @@ class _$InitialImpl implements _Initial {
|
|||||||
TResult Function()? initial,
|
TResult Function()? initial,
|
||||||
TResult Function()? loading,
|
TResult Function()? loading,
|
||||||
TResult Function(String message)? success,
|
TResult Function(String message)? success,
|
||||||
|
TResult Function(String message)? error,
|
||||||
required TResult orElse(),
|
required TResult orElse(),
|
||||||
}) {
|
}) {
|
||||||
if (initial != null) {
|
if (initial != null) {
|
||||||
@ -481,6 +514,7 @@ class _$InitialImpl implements _Initial {
|
|||||||
required TResult Function(_Initial value) initial,
|
required TResult Function(_Initial value) initial,
|
||||||
required TResult Function(_Loading value) loading,
|
required TResult Function(_Loading value) loading,
|
||||||
required TResult Function(_Success value) success,
|
required TResult Function(_Success value) success,
|
||||||
|
required TResult Function(_Error value) error,
|
||||||
}) {
|
}) {
|
||||||
return initial(this);
|
return initial(this);
|
||||||
}
|
}
|
||||||
@ -491,6 +525,7 @@ class _$InitialImpl implements _Initial {
|
|||||||
TResult? Function(_Initial value)? initial,
|
TResult? Function(_Initial value)? initial,
|
||||||
TResult? Function(_Loading value)? loading,
|
TResult? Function(_Loading value)? loading,
|
||||||
TResult? Function(_Success value)? success,
|
TResult? Function(_Success value)? success,
|
||||||
|
TResult? Function(_Error value)? error,
|
||||||
}) {
|
}) {
|
||||||
return initial?.call(this);
|
return initial?.call(this);
|
||||||
}
|
}
|
||||||
@ -501,6 +536,7 @@ class _$InitialImpl implements _Initial {
|
|||||||
TResult Function(_Initial value)? initial,
|
TResult Function(_Initial value)? initial,
|
||||||
TResult Function(_Loading value)? loading,
|
TResult Function(_Loading value)? loading,
|
||||||
TResult Function(_Success value)? success,
|
TResult Function(_Success value)? success,
|
||||||
|
TResult Function(_Error value)? error,
|
||||||
required TResult orElse(),
|
required TResult orElse(),
|
||||||
}) {
|
}) {
|
||||||
if (initial != null) {
|
if (initial != null) {
|
||||||
@ -558,6 +594,7 @@ class _$LoadingImpl implements _Loading {
|
|||||||
required TResult Function() initial,
|
required TResult Function() initial,
|
||||||
required TResult Function() loading,
|
required TResult Function() loading,
|
||||||
required TResult Function(String message) success,
|
required TResult Function(String message) success,
|
||||||
|
required TResult Function(String message) error,
|
||||||
}) {
|
}) {
|
||||||
return loading();
|
return loading();
|
||||||
}
|
}
|
||||||
@ -568,6 +605,7 @@ class _$LoadingImpl implements _Loading {
|
|||||||
TResult? Function()? initial,
|
TResult? Function()? initial,
|
||||||
TResult? Function()? loading,
|
TResult? Function()? loading,
|
||||||
TResult? Function(String message)? success,
|
TResult? Function(String message)? success,
|
||||||
|
TResult? Function(String message)? error,
|
||||||
}) {
|
}) {
|
||||||
return loading?.call();
|
return loading?.call();
|
||||||
}
|
}
|
||||||
@ -578,6 +616,7 @@ class _$LoadingImpl implements _Loading {
|
|||||||
TResult Function()? initial,
|
TResult Function()? initial,
|
||||||
TResult Function()? loading,
|
TResult Function()? loading,
|
||||||
TResult Function(String message)? success,
|
TResult Function(String message)? success,
|
||||||
|
TResult Function(String message)? error,
|
||||||
required TResult orElse(),
|
required TResult orElse(),
|
||||||
}) {
|
}) {
|
||||||
if (loading != null) {
|
if (loading != null) {
|
||||||
@ -592,6 +631,7 @@ class _$LoadingImpl implements _Loading {
|
|||||||
required TResult Function(_Initial value) initial,
|
required TResult Function(_Initial value) initial,
|
||||||
required TResult Function(_Loading value) loading,
|
required TResult Function(_Loading value) loading,
|
||||||
required TResult Function(_Success value) success,
|
required TResult Function(_Success value) success,
|
||||||
|
required TResult Function(_Error value) error,
|
||||||
}) {
|
}) {
|
||||||
return loading(this);
|
return loading(this);
|
||||||
}
|
}
|
||||||
@ -602,6 +642,7 @@ class _$LoadingImpl implements _Loading {
|
|||||||
TResult? Function(_Initial value)? initial,
|
TResult? Function(_Initial value)? initial,
|
||||||
TResult? Function(_Loading value)? loading,
|
TResult? Function(_Loading value)? loading,
|
||||||
TResult? Function(_Success value)? success,
|
TResult? Function(_Success value)? success,
|
||||||
|
TResult? Function(_Error value)? error,
|
||||||
}) {
|
}) {
|
||||||
return loading?.call(this);
|
return loading?.call(this);
|
||||||
}
|
}
|
||||||
@ -612,6 +653,7 @@ class _$LoadingImpl implements _Loading {
|
|||||||
TResult Function(_Initial value)? initial,
|
TResult Function(_Initial value)? initial,
|
||||||
TResult Function(_Loading value)? loading,
|
TResult Function(_Loading value)? loading,
|
||||||
TResult Function(_Success value)? success,
|
TResult Function(_Success value)? success,
|
||||||
|
TResult Function(_Error value)? error,
|
||||||
required TResult orElse(),
|
required TResult orElse(),
|
||||||
}) {
|
}) {
|
||||||
if (loading != null) {
|
if (loading != null) {
|
||||||
@ -696,6 +738,7 @@ class _$SuccessImpl implements _Success {
|
|||||||
required TResult Function() initial,
|
required TResult Function() initial,
|
||||||
required TResult Function() loading,
|
required TResult Function() loading,
|
||||||
required TResult Function(String message) success,
|
required TResult Function(String message) success,
|
||||||
|
required TResult Function(String message) error,
|
||||||
}) {
|
}) {
|
||||||
return success(message);
|
return success(message);
|
||||||
}
|
}
|
||||||
@ -706,6 +749,7 @@ class _$SuccessImpl implements _Success {
|
|||||||
TResult? Function()? initial,
|
TResult? Function()? initial,
|
||||||
TResult? Function()? loading,
|
TResult? Function()? loading,
|
||||||
TResult? Function(String message)? success,
|
TResult? Function(String message)? success,
|
||||||
|
TResult? Function(String message)? error,
|
||||||
}) {
|
}) {
|
||||||
return success?.call(message);
|
return success?.call(message);
|
||||||
}
|
}
|
||||||
@ -716,6 +760,7 @@ class _$SuccessImpl implements _Success {
|
|||||||
TResult Function()? initial,
|
TResult Function()? initial,
|
||||||
TResult Function()? loading,
|
TResult Function()? loading,
|
||||||
TResult Function(String message)? success,
|
TResult Function(String message)? success,
|
||||||
|
TResult Function(String message)? error,
|
||||||
required TResult orElse(),
|
required TResult orElse(),
|
||||||
}) {
|
}) {
|
||||||
if (success != null) {
|
if (success != null) {
|
||||||
@ -730,6 +775,7 @@ class _$SuccessImpl implements _Success {
|
|||||||
required TResult Function(_Initial value) initial,
|
required TResult Function(_Initial value) initial,
|
||||||
required TResult Function(_Loading value) loading,
|
required TResult Function(_Loading value) loading,
|
||||||
required TResult Function(_Success value) success,
|
required TResult Function(_Success value) success,
|
||||||
|
required TResult Function(_Error value) error,
|
||||||
}) {
|
}) {
|
||||||
return success(this);
|
return success(this);
|
||||||
}
|
}
|
||||||
@ -740,6 +786,7 @@ class _$SuccessImpl implements _Success {
|
|||||||
TResult? Function(_Initial value)? initial,
|
TResult? Function(_Initial value)? initial,
|
||||||
TResult? Function(_Loading value)? loading,
|
TResult? Function(_Loading value)? loading,
|
||||||
TResult? Function(_Success value)? success,
|
TResult? Function(_Success value)? success,
|
||||||
|
TResult? Function(_Error value)? error,
|
||||||
}) {
|
}) {
|
||||||
return success?.call(this);
|
return success?.call(this);
|
||||||
}
|
}
|
||||||
@ -750,6 +797,7 @@ class _$SuccessImpl implements _Success {
|
|||||||
TResult Function(_Initial value)? initial,
|
TResult Function(_Initial value)? initial,
|
||||||
TResult Function(_Loading value)? loading,
|
TResult Function(_Loading value)? loading,
|
||||||
TResult Function(_Success value)? success,
|
TResult Function(_Success value)? success,
|
||||||
|
TResult Function(_Error value)? error,
|
||||||
required TResult orElse(),
|
required TResult orElse(),
|
||||||
}) {
|
}) {
|
||||||
if (success != null) {
|
if (success != null) {
|
||||||
@ -770,3 +818,155 @@ abstract class _Success implements CreateTableState {
|
|||||||
_$$SuccessImplCopyWith<_$SuccessImpl> get copyWith =>
|
_$$SuccessImplCopyWith<_$SuccessImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @nodoc
|
||||||
|
abstract class _$$ErrorImplCopyWith<$Res> {
|
||||||
|
factory _$$ErrorImplCopyWith(
|
||||||
|
_$ErrorImpl value, $Res Function(_$ErrorImpl) then) =
|
||||||
|
__$$ErrorImplCopyWithImpl<$Res>;
|
||||||
|
@useResult
|
||||||
|
$Res call({String message});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @nodoc
|
||||||
|
class __$$ErrorImplCopyWithImpl<$Res>
|
||||||
|
extends _$CreateTableStateCopyWithImpl<$Res, _$ErrorImpl>
|
||||||
|
implements _$$ErrorImplCopyWith<$Res> {
|
||||||
|
__$$ErrorImplCopyWithImpl(
|
||||||
|
_$ErrorImpl _value, $Res Function(_$ErrorImpl) _then)
|
||||||
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of CreateTableState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@pragma('vm:prefer-inline')
|
||||||
|
@override
|
||||||
|
$Res call({
|
||||||
|
Object? message = null,
|
||||||
|
}) {
|
||||||
|
return _then(_$ErrorImpl(
|
||||||
|
null == message
|
||||||
|
? _value.message
|
||||||
|
: message // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @nodoc
|
||||||
|
|
||||||
|
class _$ErrorImpl implements _Error {
|
||||||
|
const _$ErrorImpl(this.message);
|
||||||
|
|
||||||
|
@override
|
||||||
|
final String message;
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return 'CreateTableState.error(message: $message)';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) {
|
||||||
|
return identical(this, other) ||
|
||||||
|
(other.runtimeType == runtimeType &&
|
||||||
|
other is _$ErrorImpl &&
|
||||||
|
(identical(other.message, message) || other.message == message));
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode => Object.hash(runtimeType, message);
|
||||||
|
|
||||||
|
/// Create a copy of CreateTableState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
|
@override
|
||||||
|
@pragma('vm:prefer-inline')
|
||||||
|
_$$ErrorImplCopyWith<_$ErrorImpl> get copyWith =>
|
||||||
|
__$$ErrorImplCopyWithImpl<_$ErrorImpl>(this, _$identity);
|
||||||
|
|
||||||
|
@override
|
||||||
|
@optionalTypeArgs
|
||||||
|
TResult when<TResult extends Object?>({
|
||||||
|
required TResult Function() initial,
|
||||||
|
required TResult Function() loading,
|
||||||
|
required TResult Function(String message) success,
|
||||||
|
required TResult Function(String message) error,
|
||||||
|
}) {
|
||||||
|
return error(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
@optionalTypeArgs
|
||||||
|
TResult? whenOrNull<TResult extends Object?>({
|
||||||
|
TResult? Function()? initial,
|
||||||
|
TResult? Function()? loading,
|
||||||
|
TResult? Function(String message)? success,
|
||||||
|
TResult? Function(String message)? error,
|
||||||
|
}) {
|
||||||
|
return error?.call(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
@optionalTypeArgs
|
||||||
|
TResult maybeWhen<TResult extends Object?>({
|
||||||
|
TResult Function()? initial,
|
||||||
|
TResult Function()? loading,
|
||||||
|
TResult Function(String message)? success,
|
||||||
|
TResult Function(String message)? error,
|
||||||
|
required TResult orElse(),
|
||||||
|
}) {
|
||||||
|
if (error != null) {
|
||||||
|
return error(message);
|
||||||
|
}
|
||||||
|
return orElse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
@optionalTypeArgs
|
||||||
|
TResult map<TResult extends Object?>({
|
||||||
|
required TResult Function(_Initial value) initial,
|
||||||
|
required TResult Function(_Loading value) loading,
|
||||||
|
required TResult Function(_Success value) success,
|
||||||
|
required TResult Function(_Error value) error,
|
||||||
|
}) {
|
||||||
|
return error(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
@optionalTypeArgs
|
||||||
|
TResult? mapOrNull<TResult extends Object?>({
|
||||||
|
TResult? Function(_Initial value)? initial,
|
||||||
|
TResult? Function(_Loading value)? loading,
|
||||||
|
TResult? Function(_Success value)? success,
|
||||||
|
TResult? Function(_Error value)? error,
|
||||||
|
}) {
|
||||||
|
return error?.call(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
@optionalTypeArgs
|
||||||
|
TResult maybeMap<TResult extends Object?>({
|
||||||
|
TResult Function(_Initial value)? initial,
|
||||||
|
TResult Function(_Loading value)? loading,
|
||||||
|
TResult Function(_Success value)? success,
|
||||||
|
TResult Function(_Error value)? error,
|
||||||
|
required TResult orElse(),
|
||||||
|
}) {
|
||||||
|
if (error != null) {
|
||||||
|
return error(this);
|
||||||
|
}
|
||||||
|
return orElse();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class _Error implements CreateTableState {
|
||||||
|
const factory _Error(final String message) = _$ErrorImpl;
|
||||||
|
|
||||||
|
String get message;
|
||||||
|
|
||||||
|
/// Create a copy of CreateTableState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
|
_$$ErrorImplCopyWith<_$ErrorImpl> get copyWith =>
|
||||||
|
throw _privateConstructorUsedError;
|
||||||
|
}
|
||||||
|
|||||||
@ -3,6 +3,9 @@ part of 'create_table_bloc.dart';
|
|||||||
@freezed
|
@freezed
|
||||||
class CreateTableEvent with _$CreateTableEvent {
|
class CreateTableEvent with _$CreateTableEvent {
|
||||||
const factory CreateTableEvent.started() = _Started;
|
const factory CreateTableEvent.started() = _Started;
|
||||||
const factory CreateTableEvent.createTable(
|
const factory CreateTableEvent.createTable({
|
||||||
String tableName, Offset position) = _CreateTable;
|
required String tableName,
|
||||||
|
required int capacity,
|
||||||
|
required String location,
|
||||||
|
}) = _CreateTable;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,4 +7,5 @@ class CreateTableState with _$CreateTableState {
|
|||||||
const factory CreateTableState.loading() = _Loading;
|
const factory CreateTableState.loading() = _Loading;
|
||||||
// success
|
// success
|
||||||
const factory CreateTableState.success(String message) = _Success;
|
const factory CreateTableState.success(String message) = _Success;
|
||||||
|
const factory CreateTableState.error(String message) = _Error;
|
||||||
}
|
}
|
||||||
|
|||||||
86
lib/presentation/table/dialogs/form_table_new_dialog.dart
Normal file
86
lib/presentation/table/dialogs/form_table_new_dialog.dart
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
import 'package:enaklo_pos/core/components/buttons.dart';
|
||||||
|
import 'package:enaklo_pos/core/components/custom_modal_dialog.dart';
|
||||||
|
import 'package:enaklo_pos/core/components/custom_text_field.dart';
|
||||||
|
import 'package:enaklo_pos/core/components/flushbar.dart';
|
||||||
|
import 'package:enaklo_pos/core/components/spaces.dart';
|
||||||
|
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
||||||
|
import 'package:enaklo_pos/presentation/table/blocs/create_table/create_table_bloc.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
|
|
||||||
|
class FormTableNewDialog extends StatefulWidget {
|
||||||
|
const FormTableNewDialog({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<FormTableNewDialog> createState() => _FormTableNewDialogState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _FormTableNewDialogState extends State<FormTableNewDialog> {
|
||||||
|
TextEditingController tableNameController = TextEditingController();
|
||||||
|
TextEditingController capacityController = TextEditingController();
|
||||||
|
TextEditingController locationController = TextEditingController();
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return CustomModalDialog(
|
||||||
|
title: 'Tambah Meja',
|
||||||
|
subtitle: 'Silahkan isi data meja',
|
||||||
|
contentPadding:
|
||||||
|
const EdgeInsets.symmetric(horizontal: 16.0, vertical: 24.0),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
CustomTextField(
|
||||||
|
controller: tableNameController,
|
||||||
|
label: 'Nama Meja',
|
||||||
|
),
|
||||||
|
SpaceHeight(16),
|
||||||
|
CustomTextField(
|
||||||
|
controller: capacityController,
|
||||||
|
label: 'Kapasitas',
|
||||||
|
keyboardType: TextInputType.number,
|
||||||
|
),
|
||||||
|
SpaceHeight(16),
|
||||||
|
CustomTextField(
|
||||||
|
controller: locationController,
|
||||||
|
label: 'Lokasi',
|
||||||
|
),
|
||||||
|
SpaceHeight(24),
|
||||||
|
BlocListener<CreateTableBloc, CreateTableState>(
|
||||||
|
listener: (context, state) {
|
||||||
|
state.maybeWhen(
|
||||||
|
orElse: () {},
|
||||||
|
success: (message) {
|
||||||
|
context.pop();
|
||||||
|
AppFlushbar.showSuccess(context, message);
|
||||||
|
},
|
||||||
|
error: (message) {
|
||||||
|
AppFlushbar.showError(context, message);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
child: BlocBuilder<CreateTableBloc, CreateTableState>(
|
||||||
|
builder: (context, state) {
|
||||||
|
return state.maybeWhen(
|
||||||
|
orElse: () => Button.filled(
|
||||||
|
onPressed: () {
|
||||||
|
context.read<CreateTableBloc>().add(
|
||||||
|
CreateTableEvent.createTable(
|
||||||
|
capacity: int.parse(capacityController.text),
|
||||||
|
location: locationController.text,
|
||||||
|
tableName: tableNameController.text,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
label: 'Simpan',
|
||||||
|
),
|
||||||
|
loading: () =>
|
||||||
|
Center(child: const CircularProgressIndicator()),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,18 +1,13 @@
|
|||||||
import 'dart:developer';
|
import 'package:enaklo_pos/presentation/table/dialogs/form_table_new_dialog.dart';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
import 'package:enaklo_pos/core/components/components.dart';
|
import 'package:enaklo_pos/core/components/components.dart';
|
||||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||||
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
||||||
import 'package:enaklo_pos/data/models/response/table_model.dart';
|
|
||||||
import 'package:enaklo_pos/presentation/table/blocs/change_position_table/change_position_table_bloc.dart';
|
import 'package:enaklo_pos/presentation/table/blocs/change_position_table/change_position_table_bloc.dart';
|
||||||
import 'package:enaklo_pos/presentation/table/blocs/create_table/create_table_bloc.dart';
|
import 'package:enaklo_pos/presentation/table/blocs/create_table/create_table_bloc.dart';
|
||||||
import 'package:enaklo_pos/presentation/table/blocs/get_table/get_table_bloc.dart';
|
import 'package:enaklo_pos/presentation/table/blocs/get_table/get_table_bloc.dart';
|
||||||
import 'package:enaklo_pos/presentation/table/widgets/table_widget.dart';
|
import 'package:enaklo_pos/presentation/table/widgets/table_widget.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
||||||
import 'package:hive/hive.dart';
|
|
||||||
import 'package:path_provider/path_provider.dart';
|
|
||||||
|
|
||||||
class TableManagementScreen extends StatefulWidget {
|
class TableManagementScreen extends StatefulWidget {
|
||||||
const TableManagementScreen({super.key});
|
const TableManagementScreen({super.key});
|
||||||
@ -64,55 +59,9 @@ class _TableManagementScreenState extends State<TableManagementScreen> {
|
|||||||
onPressed: () {
|
onPressed: () {
|
||||||
// show dialaog adn input table name
|
// show dialaog adn input table name
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) => FormTableNewDialog(),
|
||||||
return AlertDialog(
|
);
|
||||||
title: Text('Add Table'),
|
|
||||||
content: SingleChildScrollView(
|
|
||||||
child: ConstrainedBox(
|
|
||||||
constraints: BoxConstraints(
|
|
||||||
maxHeight: 180,
|
|
||||||
),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
children: [
|
|
||||||
CustomTextField(
|
|
||||||
controller: tableNameController!,
|
|
||||||
label: 'Table Name',
|
|
||||||
),
|
|
||||||
SpaceHeight(16),
|
|
||||||
Row(
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Button.outlined(
|
|
||||||
onPressed: () {
|
|
||||||
context.pop();
|
|
||||||
},
|
|
||||||
label: 'close',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SpaceWidth(16),
|
|
||||||
Expanded(
|
|
||||||
child: Button.filled(
|
|
||||||
onPressed: () {
|
|
||||||
context.read<CreateTableBloc>().add(
|
|
||||||
CreateTableEvent.createTable(
|
|
||||||
tableNameController!.text,
|
|
||||||
Offset(200, 200)));
|
|
||||||
context
|
|
||||||
.pop(); // close dialog after adding
|
|
||||||
},
|
|
||||||
label: 'Add',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
actions: []);
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user