first commit

This commit is contained in:
benjibennn
2023-12-27 16:10:09 +08:00
commit 4f35362cf9
370 changed files with 108340 additions and 0 deletions

BIN
lib/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,83 @@
import '/backend/api_requests/api_calls.dart';
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/components/no_permission_widget.dart';
import '/flutterlib/flutter_button_tabbar.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'account1_widget.dart' show Account1Widget;
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Account1Model extends FlutterModel<Account1Widget> {
/// Local state fields for this page.
bool checkPermission20 = false;
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Stores action output result for [Backend Call - API (Check role has permission)] action in account1 widget.
ApiCallResponse? apiResult20;
// Stores action output result for [Backend Call - API (logout)] action in Button widget.
ApiCallResponse? logout;
// State field(s) for TabBar widget.
TabController? tabBarController;
int get tabBarCurrentIndex =>
tabBarController != null ? tabBarController!.index : 0;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode3;
TextEditingController? textController3;
String? Function(BuildContext, String?)? textController3Validator;
// State field(s) for Switch widget.
bool? switchValue;
// Model for noPermission component.
late NoPermissionModel noPermissionModel;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
noPermissionModel = createModel(context, () => NoPermissionModel());
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
tabBarController?.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
textFieldFocusNode3?.dispose();
textController3?.dispose();
noPermissionModel.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

270
lib/app_state.dart Normal file
View File

@@ -0,0 +1,270 @@
import 'package:flutter/material.dart';
import '/backend/schema/enums/enums.dart';
import 'backend/api_requests/api_manager.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:csv/csv.dart';
import 'package:synchronized/synchronized.dart';
import 'flutterlib/flutter_util.dart';
import 'dart:convert';
class FFAppState extends ChangeNotifier {
static FFAppState _instance = FFAppState._internal();
factory FFAppState() {
return _instance;
}
FFAppState._internal();
static void reset() {
_instance = FFAppState._internal();
}
Future initializePersistedState() async {
secureStorage = FlutterSecureStorage();
await _safeInitAsync(() async {
_token = await secureStorage.getString('ff_token') ?? _token;
});
await _safeInitAsync(() async {
_email = await secureStorage.getString('ff_email') ?? _email;
});
await _safeInitAsync(() async {
_password = await secureStorage.getString('ff_password') ?? _password;
});
await _safeInitAsync(() async {
_addPermissionsID =
await secureStorage.getStringList('ff_addPermissionsID') ??
_addPermissionsID;
});
await _safeInitAsync(() async {
_removePermissionsID =
await secureStorage.getStringList('ff_removePermissionsID') ??
_removePermissionsID;
});
}
void update(VoidCallback callback) {
callback();
notifyListeners();
}
late FlutterSecureStorage secureStorage;
String _token = '';
String get token => _token;
set token(String _value) {
_token = _value;
secureStorage.setString('ff_token', _value);
}
void deleteToken() {
secureStorage.delete(key: 'ff_token');
}
int _userid = 0;
int get userid => _userid;
set userid(int _value) {
_userid = _value;
}
String _email = '';
String get email => _email;
set email(String _value) {
_email = _value;
secureStorage.setString('ff_email', _value);
}
void deleteEmail() {
secureStorage.delete(key: 'ff_email');
}
String _password = '';
String get password => _password;
set password(String _value) {
_password = _value;
secureStorage.setString('ff_password', _value);
}
void deletePassword() {
secureStorage.delete(key: 'ff_password');
}
bool _showChat = false;
bool get showChat => _showChat;
set showChat(bool _value) {
_showChat = _value;
}
String _roleID = '';
String get roleID => _roleID;
set roleID(String _value) {
_roleID = _value;
}
int _memberID = 0;
int get memberID => _memberID;
set memberID(int _value) {
_memberID = _value;
}
List<String> _addPermissionsID = [];
List<String> get addPermissionsID => _addPermissionsID;
set addPermissionsID(List<String> _value) {
_addPermissionsID = _value;
secureStorage.setStringList('ff_addPermissionsID', _value);
}
void deleteAddPermissionsID() {
secureStorage.delete(key: 'ff_addPermissionsID');
}
void addToAddPermissionsID(String _value) {
_addPermissionsID.add(_value);
secureStorage.setStringList('ff_addPermissionsID', _addPermissionsID);
}
void removeFromAddPermissionsID(String _value) {
_addPermissionsID.remove(_value);
secureStorage.setStringList('ff_addPermissionsID', _addPermissionsID);
}
void removeAtIndexFromAddPermissionsID(int _index) {
_addPermissionsID.removeAt(_index);
secureStorage.setStringList('ff_addPermissionsID', _addPermissionsID);
}
void updateAddPermissionsIDAtIndex(
int _index,
String Function(String) updateFn,
) {
_addPermissionsID[_index] = updateFn(_addPermissionsID[_index]);
secureStorage.setStringList('ff_addPermissionsID', _addPermissionsID);
}
void insertAtIndexInAddPermissionsID(int _index, String _value) {
_addPermissionsID.insert(_index, _value);
secureStorage.setStringList('ff_addPermissionsID', _addPermissionsID);
}
dynamic _docStatus = jsonDecode('{\"status\":\"completed\"}');
dynamic get docStatus => _docStatus;
set docStatus(dynamic _value) {
_docStatus = _value;
}
List<String> _removePermissionsID = [];
List<String> get removePermissionsID => _removePermissionsID;
set removePermissionsID(List<String> _value) {
_removePermissionsID = _value;
secureStorage.setStringList('ff_removePermissionsID', _value);
}
void deleteRemovePermissionsID() {
secureStorage.delete(key: 'ff_removePermissionsID');
}
void addToRemovePermissionsID(String _value) {
_removePermissionsID.add(_value);
secureStorage.setStringList('ff_removePermissionsID', _removePermissionsID);
}
void removeFromRemovePermissionsID(String _value) {
_removePermissionsID.remove(_value);
secureStorage.setStringList('ff_removePermissionsID', _removePermissionsID);
}
void removeAtIndexFromRemovePermissionsID(int _index) {
_removePermissionsID.removeAt(_index);
secureStorage.setStringList('ff_removePermissionsID', _removePermissionsID);
}
void updateRemovePermissionsIDAtIndex(
int _index,
String Function(String) updateFn,
) {
_removePermissionsID[_index] = updateFn(_removePermissionsID[_index]);
secureStorage.setStringList('ff_removePermissionsID', _removePermissionsID);
}
void insertAtIndexInRemovePermissionsID(int _index, String _value) {
_removePermissionsID.insert(_index, _value);
secureStorage.setStringList('ff_removePermissionsID', _removePermissionsID);
}
String _status = 'In progress';
String get status => _status;
set status(String _value) {
_status = _value;
}
String _failed = 'Failed';
String get failed => _failed;
set failed(String _value) {
_failed = _value;
}
}
LatLng? _latLngFromString(String? val) {
if (val == null) {
return null;
}
final split = val.split(',');
final lat = double.parse(split.first);
final lng = double.parse(split.last);
return LatLng(lat, lng);
}
void _safeInit(Function() initializeField) {
try {
initializeField();
} catch (_) {}
}
Future _safeInitAsync(Function() initializeField) async {
try {
await initializeField();
} catch (_) {}
}
extension FlutterSecureStorageExtensions on FlutterSecureStorage {
static final _lock = Lock();
Future<void> writeSync({required String key, String? value}) async =>
await _lock.synchronized(() async {
await write(key: key, value: value);
});
void remove(String key) => delete(key: key);
Future<String?> getString(String key) async => await read(key: key);
Future<void> setString(String key, String value) async =>
await writeSync(key: key, value: value);
Future<bool?> getBool(String key) async => (await read(key: key)) == 'true';
Future<void> setBool(String key, bool value) async =>
await writeSync(key: key, value: value.toString());
Future<int?> getInt(String key) async =>
int.tryParse(await read(key: key) ?? '');
Future<void> setInt(String key, int value) async =>
await writeSync(key: key, value: value.toString());
Future<double?> getDouble(String key) async =>
double.tryParse(await read(key: key) ?? '');
Future<void> setDouble(String key, double value) async =>
await writeSync(key: key, value: value.toString());
Future<List<String>?> getStringList(String key) async =>
await read(key: key).then((result) {
if (result == null || result.isEmpty) {
return null;
}
return CsvToListConverter()
.convert(result)
.first
.map((e) => e.toString())
.toList();
});
Future<void> setStringList(String key, List<String> value) async =>
await writeSync(key: key, value: ListToCsvConverter().convert([value]));
}

View File

@@ -0,0 +1,11 @@
import 'custom_auth_manager.dart';
export 'custom_auth_manager.dart';
final _authManager = CustomAuthManager();
CustomAuthManager get authManager => _authManager;
String get currentUserUid => currentUser?.uid ?? '';
String? get currentAuthenticationToken => authManager.authenticationToken;
String? get currentAuthRefreshToken => authManager.refreshToken;
DateTime? get currentAuthTokenExpiration => authManager.tokenExpiration;

View File

@@ -0,0 +1,135 @@
import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'custom_auth_user_provider.dart';
export 'custom_auth_manager.dart';
const _kAuthTokenKey = '_auth_authentication_token_';
const _kRefreshTokenKey = '_auth_refresh_token_';
const _kTokenExpirationKey = '_auth_token_expiration_';
const _kUidKey = '_auth_uid_';
const _kUserDataKey = '_auth_user_data_';
class CustomAuthManager {
// Auth session attributes
String? authenticationToken;
String? refreshToken;
DateTime? tokenExpiration;
// User attributes
String? uid;
Future signOut() async {
authenticationToken = null;
refreshToken = null;
tokenExpiration = null;
uid = null;
// Update the current user.
numstationAuthUserSubject.add(
NumstationAuthUser(loggedIn: false),
);
persistAuthData();
}
Future<NumstationAuthUser?> signIn({
String? authenticationToken,
String? refreshToken,
DateTime? tokenExpiration,
String? authUid,
}) async =>
_updateCurrentUser(
authenticationToken: authenticationToken,
refreshToken: refreshToken,
tokenExpiration: tokenExpiration,
authUid: authUid,
);
void updateAuthUserData({
String? authenticationToken,
String? refreshToken,
DateTime? tokenExpiration,
String? authUid,
}) {
assert(
currentUser?.loggedIn ?? false,
'User must be logged in to update auth user data.',
);
_updateCurrentUser(
authenticationToken: authenticationToken,
refreshToken: refreshToken,
tokenExpiration: tokenExpiration,
authUid: authUid,
);
}
NumstationAuthUser? _updateCurrentUser({
String? authenticationToken,
String? refreshToken,
DateTime? tokenExpiration,
String? authUid,
}) {
this.authenticationToken = authenticationToken;
this.refreshToken = refreshToken;
this.tokenExpiration = tokenExpiration;
this.uid = authUid;
// Update the current user stream.
final updatedUser = NumstationAuthUser(
loggedIn: true,
uid: authUid,
);
numstationAuthUserSubject.add(updatedUser);
persistAuthData();
return updatedUser;
}
late SharedPreferences _prefs;
Future initialize() async {
_prefs = await SharedPreferences.getInstance();
try {
authenticationToken = _prefs.getString(_kAuthTokenKey);
refreshToken = _prefs.getString(_kRefreshTokenKey);
tokenExpiration = _prefs.getInt(_kTokenExpirationKey) != null
? DateTime.fromMillisecondsSinceEpoch(
_prefs.getInt(_kTokenExpirationKey)!)
: null;
uid = _prefs.getString(_kUidKey);
} catch (e) {
if (kDebugMode) {
print('Error initializing auth: $e');
}
return;
}
final authTokenExists = authenticationToken != null;
final tokenExpired =
tokenExpiration != null && tokenExpiration!.isBefore(DateTime.now());
final updatedUser = NumstationAuthUser(
loggedIn: authTokenExists && !tokenExpired,
uid: uid,
);
numstationAuthUserSubject.add(updatedUser);
}
void persistAuthData() {
authenticationToken != null
? _prefs.setString(_kAuthTokenKey, authenticationToken!)
: _prefs.remove(_kAuthTokenKey);
refreshToken != null
? _prefs.setString(_kRefreshTokenKey, refreshToken!)
: _prefs.remove(_kRefreshTokenKey);
tokenExpiration != null
? _prefs.setInt(
_kTokenExpirationKey, tokenExpiration!.millisecondsSinceEpoch)
: _prefs.remove(_kTokenExpirationKey);
uid != null ? _prefs.setString(_kUidKey, uid!) : _prefs.remove(_kUidKey);
}
}
NumstationAuthUser? currentUser;
bool get loggedIn => currentUser?.loggedIn ?? false;

View File

@@ -0,0 +1,18 @@
import 'package:rxdart/rxdart.dart';
import 'custom_auth_manager.dart';
class NumstationAuthUser {
NumstationAuthUser({required this.loggedIn, this.uid});
bool loggedIn;
String? uid;
}
/// Generates a stream of the authenticated user.
BehaviorSubject<NumstationAuthUser> numstationAuthUserSubject =
BehaviorSubject.seeded(NumstationAuthUser(loggedIn: false));
Stream<NumstationAuthUser> numstationAuthUserStream() =>
numstationAuthUserSubject
.asBroadcastStream()
.map((user) => currentUser = user);

BIN
lib/backend/.DS_Store vendored Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,383 @@
import 'dart:convert';
import 'dart:io';
import 'dart:core';
import 'dart:typed_data';
import 'package:collection/collection.dart';
import 'package:http/http.dart' as http;
import 'package:equatable/equatable.dart';
import 'package:http_parser/http_parser.dart';
import 'package:mime_type/mime_type.dart';
import '../../flutterlib/uploaded_file.dart';
enum ApiCallType {
GET,
POST,
DELETE,
PUT,
PATCH,
}
enum BodyType {
NONE,
JSON,
TEXT,
X_WWW_FORM_URL_ENCODED,
MULTIPART,
}
class ApiCallRecord extends Equatable {
ApiCallRecord(this.callName, this.apiUrl, this.headers, this.params,
this.body, this.bodyType);
final String callName;
final String apiUrl;
final Map<String, dynamic> headers;
final Map<String, dynamic> params;
final String? body;
final BodyType? bodyType;
@override
List<Object?> get props =>
[callName, apiUrl, headers, params, body, bodyType];
}
class ApiCallResponse {
const ApiCallResponse(
this.jsonBody,
this.headers,
this.statusCode, {
this.response,
});
final dynamic jsonBody;
final Map<String, String> headers;
final int statusCode;
final http.Response? response;
// Whether we received a 2xx status (which generally marks success).
bool get succeeded => statusCode >= 200 && statusCode < 300;
String getHeader(String headerName) => headers[headerName] ?? '';
// Return the raw body from the response, or if this came from a cloud call
// and the body is not a string, then the json encoded body.
String get bodyText =>
response?.body ??
(jsonBody is String ? jsonBody as String : jsonEncode(jsonBody));
static ApiCallResponse fromHttpResponse(
http.Response response,
bool returnBody,
bool decodeUtf8,
) {
var jsonBody;
try {
final responseBody = decodeUtf8 && returnBody
? const Utf8Decoder().convert(response.bodyBytes)
: response.body;
jsonBody = returnBody ? json.decode(responseBody) : null;
} catch (_) {}
return ApiCallResponse(
jsonBody,
response.headers,
response.statusCode,
response: response,
);
}
static ApiCallResponse fromCloudCallResponse(Map<String, dynamic> response) =>
ApiCallResponse(
response['body'],
ApiManager.toStringMap(response['headers'] ?? {}),
response['statusCode'] ?? 400,
);
}
class ApiManager {
ApiManager._();
// Cache that will ensure identical calls are not repeatedly made.
static Map<ApiCallRecord, ApiCallResponse> _apiCache = {};
static ApiManager? _instance;
static ApiManager get instance => _instance ??= ApiManager._();
// If your API calls need authentication, populate this field once
// the user has authenticated. Alter this as needed.
static String? _accessToken;
// You may want to call this if, for example, you make a change to the
// database and no longer want the cached result of a call that may
// have changed.
static void clearCache(String callName) => _apiCache.keys
.toSet()
.forEach((k) => k.callName == callName ? _apiCache.remove(k) : null);
static Map<String, String> toStringMap(Map map) =>
map.map((key, value) => MapEntry(key.toString(), value.toString()));
static String asQueryParams(Map<String, dynamic> map) => map.entries
.map((e) =>
"${Uri.encodeComponent(e.key)}=${Uri.encodeComponent(e.value.toString())}")
.join('&');
static Future<ApiCallResponse> urlRequest(
ApiCallType callType,
String apiUrl,
Map<String, dynamic> headers,
Map<String, dynamic> params,
bool returnBody,
bool decodeUtf8, {
http.Client? client,
}) async {
if (params.isNotEmpty) {
final specifier =
Uri.parse(apiUrl).queryParameters.isNotEmpty ? '&' : '?';
apiUrl = '$apiUrl$specifier${asQueryParams(params)}';
}
final makeRequest = callType == ApiCallType.GET
? (client != null ? client.get : http.get)
: (client != null ? client.delete : http.delete);
final response =
await makeRequest(Uri.parse(apiUrl), headers: toStringMap(headers));
return ApiCallResponse.fromHttpResponse(response, returnBody, decodeUtf8);
}
static Future<ApiCallResponse> requestWithBody(
ApiCallType type,
String apiUrl,
Map<String, dynamic> headers,
Map<String, dynamic> params,
String? body,
BodyType? bodyType,
bool returnBody,
bool encodeBodyUtf8,
bool decodeUtf8,
bool alwaysAllowBody, {
http.Client? client,
}) async {
assert(
{ApiCallType.POST, ApiCallType.PUT, ApiCallType.PATCH}.contains(type) ||
(alwaysAllowBody && type == ApiCallType.DELETE),
'Invalid ApiCallType $type for request with body',
);
final postBody =
createBody(headers, params, body, bodyType, encodeBodyUtf8);
if (bodyType == BodyType.MULTIPART) {
return multipartRequest(type, apiUrl, headers, params, returnBody,
decodeUtf8, alwaysAllowBody);
}
final requestFn = {
ApiCallType.POST: client != null ? client.post : http.post,
ApiCallType.PUT: client != null ? client.put : http.put,
ApiCallType.PATCH: client != null ? client.patch : http.patch,
ApiCallType.DELETE: client != null ? client.delete : http.delete,
}[type]!;
final response = await requestFn(Uri.parse(apiUrl),
headers: toStringMap(headers), body: postBody);
return ApiCallResponse.fromHttpResponse(response, returnBody, decodeUtf8);
}
static Future<ApiCallResponse> multipartRequest(
ApiCallType? type,
String apiUrl,
Map<String, dynamic> headers,
Map<String, dynamic> params,
bool returnBody,
bool decodeUtf8,
bool alwaysAllowBody,
) async {
assert(
{ApiCallType.POST, ApiCallType.PUT, ApiCallType.PATCH}.contains(type) ||
(alwaysAllowBody && type == ApiCallType.DELETE),
'Invalid ApiCallType $type for request with body',
);
bool Function(dynamic) _isFile = (e) =>
e is FFUploadedFile ||
e is List<FFUploadedFile> ||
(e is List && e.firstOrNull is FFUploadedFile);
final nonFileParams = toStringMap(
Map.fromEntries(params.entries.where((e) => !_isFile(e.value))));
List<http.MultipartFile> files = [];
params.entries.where((e) => _isFile(e.value)).forEach((e) {
final param = e.value;
final uploadedFiles = param is List
? param as List<FFUploadedFile>
: [param as FFUploadedFile];
uploadedFiles.forEach((uploadedFile) => files.add(
http.MultipartFile.fromBytes(
e.key,
uploadedFile.bytes ?? Uint8List.fromList([]),
filename: uploadedFile.name,
contentType: _getMediaType(uploadedFile.name),
),
));
});
final request = http.MultipartRequest(
type.toString().split('.').last, Uri.parse(apiUrl))
..headers.addAll(toStringMap(headers))
..files.addAll(files);
nonFileParams.forEach((key, value) => request.fields[key] = value);
final response = await http.Response.fromStream(await request.send());
return ApiCallResponse.fromHttpResponse(response, returnBody, decodeUtf8);
}
static MediaType? _getMediaType(String? filename) {
final contentType = mime(filename);
if (contentType == null) {
return null;
}
final parts = contentType.split('/');
if (parts.length != 2) {
return null;
}
return MediaType(parts.first, parts.last);
}
static dynamic createBody(
Map<String, dynamic> headers,
Map<String, dynamic>? params,
String? body,
BodyType? bodyType,
bool encodeBodyUtf8,
) {
String? contentType;
dynamic postBody;
switch (bodyType) {
case BodyType.JSON:
contentType = 'application/json';
postBody = body ?? json.encode(params ?? {});
break;
case BodyType.TEXT:
contentType = 'text/plain';
postBody = body ?? json.encode(params ?? {});
break;
case BodyType.X_WWW_FORM_URL_ENCODED:
contentType = 'application/x-www-form-urlencoded';
postBody = toStringMap(params ?? {});
break;
case BodyType.MULTIPART:
contentType = 'multipart/form-data';
postBody = params;
break;
case BodyType.NONE:
case null:
break;
}
// Set "Content-Type" header if it was previously unset.
if (contentType != null &&
!headers.keys.any((h) => h.toLowerCase() == 'content-type')) {
headers['Content-Type'] = contentType;
}
return encodeBodyUtf8 && postBody is String
? utf8.encode(postBody)
: postBody;
}
Future<ApiCallResponse> makeApiCall({
required String callName,
required String apiUrl,
required ApiCallType callType,
Map<String, dynamic> headers = const {},
Map<String, dynamic> params = const {},
String? body,
BodyType? bodyType,
bool returnBody = true,
bool encodeBodyUtf8 = false,
bool decodeUtf8 = false,
bool cache = false,
bool alwaysAllowBody = false,
http.Client? client,
}) async {
final callRecord =
ApiCallRecord(callName, apiUrl, headers, params, body, bodyType);
// Modify for your specific needs if this differs from your API.
if (_accessToken != null) {
headers[HttpHeaders.authorizationHeader] = 'Bearer $_accessToken';
}
if (!apiUrl.startsWith('http')) {
apiUrl = 'https://$apiUrl';
}
// If we've already made this exact call before and caching is on,
// return the cached result.
if (cache && _apiCache.containsKey(callRecord)) {
return _apiCache[callRecord]!;
}
ApiCallResponse result;
try {
switch (callType) {
case ApiCallType.GET:
result = await urlRequest(
callType,
apiUrl,
headers,
params,
returnBody,
decodeUtf8,
client: client,
);
break;
case ApiCallType.DELETE:
result = alwaysAllowBody
? await requestWithBody(
callType,
apiUrl,
headers,
params,
body,
bodyType,
returnBody,
encodeBodyUtf8,
decodeUtf8,
alwaysAllowBody,
client: client,
)
: await urlRequest(
callType,
apiUrl,
headers,
params,
returnBody,
decodeUtf8,
client: client,
);
break;
case ApiCallType.POST:
case ApiCallType.PUT:
case ApiCallType.PATCH:
result = await requestWithBody(
callType,
apiUrl,
headers,
params,
body,
bodyType,
returnBody,
encodeBodyUtf8,
decodeUtf8,
alwaysAllowBody,
client: client,
);
break;
}
// If caching is on, cache the result (if present).
if (cache) {
_apiCache[callRecord] = result;
}
} catch (e) {
result = ApiCallResponse(
null,
{},
-1,
);
}
return result;
}
}

View File

@@ -0,0 +1,23 @@
import 'package:collection/collection.dart';
enum Position {
director,
}
extension FFEnumExtensions<T extends Enum> on T {
String serialize() => name;
}
extension FFEnumListExtensions<T extends Enum> on Iterable<T> {
T? deserialize(String? value) =>
firstWhereOrNull((e) => e.serialize() == value);
}
T? deserializeEnum<T>(String? value) {
switch (T) {
case (Position):
return Position.values.deserialize(value) as T?;
default:
return null;
}
}

BIN
lib/bookkeeping/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,42 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_animations.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk1_widget.dart' show Bk1Widget;
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Bk1Model extends FlutterModel<Bk1Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,42 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_animations.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk2_widget.dart' show Bk2Widget;
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Bk2Model extends FlutterModel<Bk2Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk3_widget.dart' show Bk3Widget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Bk3Model extends FlutterModel<Bk3Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,66 @@
import '/backend/api_requests/api_calls.dart';
import '/components/alert_box_custom_widget.dart';
import '/components/appbar_widget.dart';
import '/components/emptylist_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_button_tabbar.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/custom_functions.dart' as functions;
import 'bk4_widget.dart' show Bk4Widget;
import 'package:aligned_dialog/aligned_dialog.dart';
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Bk4Model extends FlutterModel<Bk4Widget> {
/// Local state fields for this page.
bool checkPermission26 = false;
bool checkPermission27 = false;
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Stores action output result for [Backend Call - API (Check role has permission)] action in bk4 widget.
ApiCallResponse? apiResult26;
// Stores action output result for [Backend Call - API (Check role has permission)] action in bk4 widget.
ApiCallResponse? apiResult27;
// State field(s) for TabBar widget.
TabController? tabBarController;
int get tabBarCurrentIndex =>
tabBarController != null ? tabBarController!.index : 0;
// Stores action output result for [Backend Call - API (View Document)] action in Container widget.
ApiCallResponse? apiResult4qr;
// Stores action output result for [Backend Call - API (View Document)] action in Container widget.
ApiCallResponse? apiResult8ni;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
tabBarController?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,55 @@
import '/backend/api_requests/api_calls.dart';
import '/flutterlib/flutter_drop_down.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import '/flutterlib/upload_data.dart';
import 'bk41_widget.dart' show Bk41Widget;
import 'package:badges/badges.dart' as badges;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Bk41Model extends FlutterModel<Bk41Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
bool isDataUploading = false;
FFUploadedFile uploadedLocalFile =
FFUploadedFile(bytes: Uint8List.fromList([]));
// State field(s) for name widget.
FocusNode? nameFocusNode;
TextEditingController? nameController;
String? Function(BuildContext, String?)? nameControllerValidator;
// State field(s) for description widget.
FocusNode? descriptionFocusNode;
TextEditingController? descriptionController;
String? Function(BuildContext, String?)? descriptionControllerValidator;
// State field(s) for category widget.
String? categoryValue;
FormFieldController<String>? categoryValueController;
// Stores action output result for [Backend Call - API (Add Document)] action in Button widget.
ApiCallResponse? apiResultl9k;
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {
unfocusNode.dispose();
nameFocusNode?.dispose();
nameController?.dispose();
descriptionFocusNode?.dispose();
descriptionController?.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,29 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk42_widget.dart' show Bk42Widget;
import 'package:badges/badges.dart' as badges;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Bk42Model extends FlutterModel<Bk42Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {
unfocusNode.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,95 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk_checkout_widget.dart' show BkCheckoutWidget;
import 'package:styled_divider/styled_divider.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class BkCheckoutModel extends FlutterModel<BkCheckoutWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode3;
TextEditingController? textController3;
String? Function(BuildContext, String?)? textController3Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode4;
TextEditingController? textController4;
String? Function(BuildContext, String?)? textController4Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode5;
TextEditingController? textController5;
String? Function(BuildContext, String?)? textController5Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode6;
TextEditingController? textController6;
String? Function(BuildContext, String?)? textController6Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode7;
TextEditingController? textController7;
String? Function(BuildContext, String?)? textController7Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode8;
TextEditingController? textController8;
String? Function(BuildContext, String?)? textController8Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
textFieldFocusNode3?.dispose();
textController3?.dispose();
textFieldFocusNode4?.dispose();
textController4?.dispose();
textFieldFocusNode5?.dispose();
textController5?.dispose();
textFieldFocusNode6?.dispose();
textController6?.dispose();
textFieldFocusNode7?.dispose();
textController7?.dispose();
textFieldFocusNode8?.dispose();
textController8?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,39 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk_checkout1_widget.dart' show BkCheckout1Widget;
import 'package:styled_divider/styled_divider.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class BkCheckout1Model extends FlutterModel<BkCheckout1Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_icon_button.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk_view_widget.dart' show BkViewWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class BkViewModel extends FlutterModel<BkViewWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,174 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_icon_button.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'bk_view_model.dart';
export 'bk_view_model.dart';
class BkViewWidget extends StatefulWidget {
const BkViewWidget({
Key? key,
required this.fileUrl,
}) : super(key: key);
final dynamic fileUrl;
@override
_BkViewWidgetState createState() => _BkViewWidgetState();
}
class _BkViewWidgetState extends State<BkViewWidget> {
late BkViewModel _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => BkViewModel());
}
@override
void dispose() {
_model.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Scaffold(
key: scaffoldKey,
backgroundColor: FlutterTheme.of(context).primaryBackground,
appBar: PreferredSize(
preferredSize: Size.fromHeight(0.0),
child: AppBar(
backgroundColor: Color(0xFFE7E36B),
automaticallyImplyLeading: false,
actions: [],
centerTitle: false,
elevation: 0.0,
),
),
body: SafeArea(
top: true,
child: Stack(
children: [
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Container(
width: 390.0,
height: 546.0,
decoration: BoxDecoration(
color: Color(0xFFCECECE),
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Align(
alignment:
AlignmentDirectional(1.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
0.0, 5.0, 5.0, 0.0),
child: FlutterIconButton(
borderRadius: 20.0,
borderWidth: 1.0,
buttonSize: 40.0,
fillColor: Color(0xFF9B0025),
icon: Icon(
Icons.close,
color: Color(0xFFE8E8E8),
size: 26.0,
),
onPressed: () async {
context.safePop();
},
),
),
),
),
],
),
Expanded(
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.network(
widget.fileUrl!.toString(),
width: 300.0,
height: 200.0,
fit: BoxFit.contain,
alignment: Alignment(0.0, 0.0),
),
),
),
),
],
),
),
),
),
),
],
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: wrapWithModel(
model: _model.navBar1Model,
updateCallback: () => setState(() {}),
child: NavBar1Widget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: wrapWithModel(
model: _model.appbarModel,
updateCallback: () => setState(() {}),
child: AppbarWidget(),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,64 @@
import '/backend/api_requests/api_calls.dart';
import '/components/appbar_widget.dart';
import '/components/emptylist_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_drop_down.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import '/flutterlib/custom_functions.dart' as functions;
import 'search1_widget.dart' show Search1Widget;
import 'package:easy_debounce/easy_debounce.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Search1Model extends FlutterModel<Search1Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode;
TextEditingController? textController;
String? Function(BuildContext, String?)? textControllerValidator;
// State field(s) for DropDown widget.
String? dropDownValue;
FormFieldController<String>? dropDownValueController;
// State field(s) for CheckboxListTile widget.
bool? checkboxListTileValue;
// State field(s) for Checkbox widget.
Map<dynamic, bool> checkboxValueMap = {};
List<dynamic> get checkboxCheckedItems =>
checkboxValueMap.entries.where((e) => e.value).map((e) => e.key).toList();
// Stores action output result for [Backend Call - API (View Document)] action in Container widget.
ApiCallResponse? apiResultr1v;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode?.dispose();
textController?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,89 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_drop_down.dart';
import '/flutterlib/flutter_icon_button.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import 'search_page_widget.dart' show SearchPageWidget;
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class SearchPageModel extends FlutterModel<SearchPageWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for DropDown widget.
String? dropDownValue1;
FormFieldController<String>? dropDownValueController1;
// State field(s) for status widget.
String? statusValue;
FormFieldController<String>? statusValueController;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for DropDown widget.
String? dropDownValue2;
FormFieldController<String>? dropDownValueController2;
// State field(s) for category_id122 widget.
String? categoryId122Value;
FormFieldController<String>? categoryId122ValueController;
// State field(s) for status122 widget.
String? status122Value;
FormFieldController<String>? status122ValueController;
// State field(s) for search122 widget.
FocusNode? search122FocusNode;
TextEditingController? search122Controller;
String? Function(BuildContext, String?)? search122ControllerValidator;
// State field(s) for fix_date122 widget.
String? fixDate122Value;
FormFieldController<String>? fixDate122ValueController;
DateTime? datePicked1;
// State field(s) for afterdate widget.
FocusNode? afterdateFocusNode;
TextEditingController? afterdateController;
String? Function(BuildContext, String?)? afterdateControllerValidator;
DateTime? datePicked2;
// State field(s) for beforedate widget.
FocusNode? beforedateFocusNode;
TextEditingController? beforedateController;
String? Function(BuildContext, String?)? beforedateControllerValidator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode?.dispose();
textController1?.dispose();
search122FocusNode?.dispose();
search122Controller?.dispose();
afterdateFocusNode?.dispose();
afterdateController?.dispose();
beforedateFocusNode?.dispose();
beforedateController?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

BIN
lib/comp_sec_serv/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,38 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_widget.dart' show CompsecWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecModel extends FlutterModel<CompsecWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,52 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec1_widget.dart' show Compsec1Widget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Compsec1Model extends FlutterModel<Compsec1Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,998 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'compsec1_model.dart';
export 'compsec1_model.dart';
class Compsec1Widget extends StatefulWidget {
const Compsec1Widget({Key? key}) : super(key: key);
@override
_Compsec1WidgetState createState() => _Compsec1WidgetState();
}
class _Compsec1WidgetState extends State<Compsec1Widget> {
late Compsec1Model _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => Compsec1Model());
_model.textController1 ??= TextEditingController();
_model.textFieldFocusNode1 ??= FocusNode();
_model.textController2 ??= TextEditingController();
_model.textFieldFocusNode2 ??= FocusNode();
}
@override
void dispose() {
_model.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Scaffold(
key: scaffoldKey,
backgroundColor: Color(0xFFEBEBE4),
drawer: Container(
width: 180.0,
child: Drawer(
elevation: 16.0,
child: Container(
width: 100.0,
height: 100.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 80.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 8.0, 0.0, 0.0),
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
shape: BoxShape.circle,
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/company.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 8.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'92o53lpo' /* ABC Ltd */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account1');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
5.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/account.png',
width: 50.0,
height: 50.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'835y9lid' /* Account */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('tnc');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/document.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/tnc.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
17.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'jv2pf91k' /* T&C */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.fitHeight,
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('policy');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/pp.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'nxwco5vj' /* Privacy
Policy */
,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('language');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/language.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'l0nsfcxs' /* Languages */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('setting');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/setting-2.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'hbx5adtz' /* Settings */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
),
),
appBar: PreferredSize(
preferredSize: Size.fromHeight(0.0),
child: AppBar(
backgroundColor: Color(0xFFE7E36B),
automaticallyImplyLeading: false,
actions: [],
centerTitle: false,
elevation: 0.0,
),
),
body: SafeArea(
top: true,
child: Stack(
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 100.0),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 100.0, 0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 16.0, 16.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Align(
alignment: AlignmentDirectional(1.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('compsec');
},
text: FFLocalizations.of(context).getText(
'yl3l7eim' /* Leave */,
),
options: FFButtonOptions(
width: 120.0,
height: 50.0,
padding: EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF9B0025),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 20.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
),
),
],
),
),
],
),
),
Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2641.svg',
width: 117.99,
height: 93.0,
fit: BoxFit.none,
),
),
),
],
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: Text(
FFLocalizations.of(context).getText(
'zwfwqzzv' /* Incorporation of Hong Kong Lim... */,
),
textAlign: TextAlign.center,
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 24.0,
),
),
),
],
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/Screenshot_2023-10-03_at_2.37.53_PM.png',
width: 361.0,
height: 40.0,
fit: BoxFit.cover,
),
),
],
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
child: Container(
width: 339.0,
height: 380.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x33000000),
offset: Offset(0.0, 2.0),
)
],
borderRadius: BorderRadius.circular(8.0),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
20.0, 20.0, 0.0, 12.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Text(
FFLocalizations.of(context).getText(
'keezf1vf' /* Company Name (English) */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 16.0,
),
),
],
),
),
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
20.0, 0.0, 20.0, 0.0),
child: TextFormField(
controller: _model.textController1,
focusNode: _model.textFieldFocusNode1,
autofocus: true,
obscureText: false,
decoration: InputDecoration(
labelStyle:
FlutterTheme.of(context)
.labelMedium,
hintStyle:
FlutterTheme.of(context)
.labelMedium,
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Color(0xFF6D7581),
width: 2.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterTheme.of(context)
.primary,
width: 2.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterTheme.of(context)
.error,
width: 2.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
focusedErrorBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterTheme.of(context)
.error,
width: 2.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
),
style: FlutterTheme.of(context)
.bodyMedium,
validator: _model
.textController1Validator
.asValidator(context),
),
),
),
],
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 20.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: Text(
FFLocalizations.of(context).getText(
'3zu2a46u' /* *Company name availability sub... */,
),
textAlign: TextAlign.center,
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 14.0,
),
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
20.0, 20.0, 0.0, 12.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Text(
FFLocalizations.of(context).getText(
'8d5culyk' /* Company Name (Chinese) */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 16.0,
),
),
],
),
),
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
20.0, 0.0, 20.0, 0.0),
child: TextFormField(
controller: _model.textController2,
focusNode: _model.textFieldFocusNode2,
autofocus: true,
obscureText: false,
decoration: InputDecoration(
labelStyle:
FlutterTheme.of(context)
.labelMedium,
hintStyle:
FlutterTheme.of(context)
.labelMedium,
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Color(0xFF6D7581),
width: 2.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterTheme.of(context)
.primary,
width: 2.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterTheme.of(context)
.error,
width: 2.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
focusedErrorBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterTheme.of(context)
.error,
width: 2.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
),
style: FlutterTheme.of(context)
.bodyMedium,
validator: _model
.textController2Validator
.asValidator(context),
),
),
),
],
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 20.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: Text(
FFLocalizations.of(context).getText(
'arncdqbt' /* *Company name availability sub... */,
),
textAlign: TextAlign.center,
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 14.0,
),
),
),
],
),
),
],
),
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 26.0, 0.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('compsec2');
},
text: FFLocalizations.of(context).getText(
'tljva06m' /* Next */,
),
options: FFButtonOptions(
width: 339.0,
height: 50.0,
padding: EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF009B9A),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 12.0, 0.0, 10.0),
child: FFButtonWidget(
onPressed: () {
print('Button pressed ...');
},
text: FFLocalizations.of(context).getText(
'bvz1hg0a' /* Save as Draft */,
),
options: FFButtonOptions(
width: 339.0,
height: 50.0,
padding: EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF009B9A),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
],
),
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: wrapWithModel(
model: _model.navBar1Model,
updateCallback: () => setState(() {}),
child: NavBar1Widget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: wrapWithModel(
model: _model.appbarModel,
updateCallback: () => setState(() {}),
child: AppbarWidget(),
),
),
Align(
alignment: AlignmentDirectional(1.07, -0.97),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 550.0, 30.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('chatbox');
},
child: Container(
width: 71.0,
height: 71.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
shape: BoxShape.circle,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/message-2.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
),
),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,38 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec2_widget.dart' show Compsec2Widget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Compsec2Model extends FlutterModel<Compsec2Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,942 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'compsec2_model.dart';
export 'compsec2_model.dart';
class Compsec2Widget extends StatefulWidget {
const Compsec2Widget({Key? key}) : super(key: key);
@override
_Compsec2WidgetState createState() => _Compsec2WidgetState();
}
class _Compsec2WidgetState extends State<Compsec2Widget> {
late Compsec2Model _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => Compsec2Model());
}
@override
void dispose() {
_model.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Scaffold(
key: scaffoldKey,
backgroundColor: Color(0xFFEBEBE4),
drawer: Container(
width: 180.0,
child: Drawer(
elevation: 16.0,
child: Container(
width: 100.0,
height: 100.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 80.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 8.0, 0.0, 0.0),
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
shape: BoxShape.circle,
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/company.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 8.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'dxr9rmgy' /* ABC Ltd */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account1');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
5.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/account.png',
width: 50.0,
height: 50.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'702yl7m0' /* Account */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('tnc');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/document.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/tnc.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
17.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'wwzwxs22' /* T&C */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.fitHeight,
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('policy');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/pp.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'aeyxj085' /* Privacy
Policy */
,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('language');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/language.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'epdakt7y' /* Languages */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('setting');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/setting-2.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'mj1w7zyc' /* Settings */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
),
),
appBar: PreferredSize(
preferredSize: Size.fromHeight(0.0),
child: AppBar(
backgroundColor: Color(0xFFE7E36B),
automaticallyImplyLeading: false,
actions: [],
centerTitle: false,
elevation: 0.0,
),
),
body: SafeArea(
top: true,
child: Stack(
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 100.0, 0.0, 100.0),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 16.0, 16.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Expanded(
child: Align(
alignment: AlignmentDirectional(-1.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.safePop();
},
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: Color(0xFFD6DEE9),
shape: BoxShape.circle,
),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Expanded(
child: Align(
alignment:
AlignmentDirectional(
0.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(10.0, 0.0,
0.0, 0.0),
child: Icon(
Icons.arrow_back_ios,
color:
FlutterTheme.of(
context)
.secondaryText,
size: 24.0,
),
),
),
),
],
),
),
),
),
),
),
Align(
alignment: AlignmentDirectional(1.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('compsec');
},
text: FFLocalizations.of(context).getText(
'50jclc5z' /* Leave */,
),
options: FFButtonOptions(
width: 120.0,
height: 50.0,
padding: EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF9B0025),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 20.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
],
),
),
],
),
Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2641.svg',
width: 117.99,
height: 93.0,
fit: BoxFit.none,
),
),
),
],
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: Text(
FFLocalizations.of(context).getText(
'5izkmrgr' /* Incorporation of Hong Kong Lim... */,
),
textAlign: TextAlign.center,
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 24.0,
),
),
),
],
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/Screenshot_2023-10-03_at_2.39.44_PM.png',
width: 361.0,
height: 40.0,
fit: BoxFit.cover,
),
),
],
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
child: Container(
width: 339.0,
height: 240.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x33000000),
offset: Offset(0.0, 2.0),
)
],
borderRadius: BorderRadius.circular(8.0),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 20.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
FFLocalizations.of(context).getText(
'z9wa4hm8' /* Will you be a director of this... */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 15.0,
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 20.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: 320.0,
height: 51.0,
decoration: BoxDecoration(
color: Color(0xFFF4F7FA),
borderRadius:
BorderRadius.circular(40.0),
border: Border.all(
color: Color(0xFF009B9A),
),
),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Icon(
Icons.check_sharp,
color: Color(0xFF009B9A),
size: 24.0,
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
10.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context)
.getText(
'tfbxbrpe' /* Yes */,
),
style: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Color(0xFF009B9A),
fontSize: 20.0,
),
),
),
],
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 20.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: 320.0,
height: 51.0,
decoration: BoxDecoration(
color: Color(0xFFF4F7FA),
borderRadius:
BorderRadius.circular(40.0),
border: Border.all(
color: Color(0xFF009B9A),
),
),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Icon(
Icons.close_rounded,
color: Color(0xFF009B9A),
size: 24.0,
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
10.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context)
.getText(
'6x24ewrd' /* No */,
),
style: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Color(0xFF009B9A),
fontSize: 20.0,
),
),
),
],
),
),
],
),
),
],
),
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 26.0, 0.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('compsec3');
},
text: FFLocalizations.of(context).getText(
'9memmyaw' /* Next */,
),
options: FFButtonOptions(
width: 339.0,
height: 50.0,
padding: EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF009B9A),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 26.0, 0.0, 0.0),
child: FFButtonWidget(
onPressed: () {
print('Button pressed ...');
},
text: FFLocalizations.of(context).getText(
'aqoxptvi' /* Save as Draft */,
),
options: FFButtonOptions(
width: 339.0,
height: 50.0,
padding: EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF009B9A),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
],
),
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: wrapWithModel(
model: _model.navBar1Model,
updateCallback: () => setState(() {}),
child: NavBar1Widget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: wrapWithModel(
model: _model.appbarModel,
updateCallback: () => setState(() {}),
child: AppbarWidget(),
),
),
Align(
alignment: AlignmentDirectional(1.07, -0.97),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 550.0, 30.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('chatbox');
},
child: Container(
width: 71.0,
height: 71.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
shape: BoxShape.circle,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/message-2.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
),
),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,116 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_count_controller.dart';
import '/flutterlib/flutter_drop_down.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import 'compsec3_widget.dart' show Compsec3Widget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Compsec3Model extends FlutterModel<Compsec3Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for CountController widget.
int? countControllerValue;
// State field(s) for DropDown widget.
String? dropDownValue1;
FormFieldController<String>? dropDownValueController1;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode3;
TextEditingController? textController3;
String? Function(BuildContext, String?)? textController3Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode4;
TextEditingController? textController4;
String? Function(BuildContext, String?)? textController4Validator;
// State field(s) for DropDown widget.
String? dropDownValue2;
FormFieldController<String>? dropDownValueController2;
// State field(s) for DropDown widget.
String? dropDownValue3;
FormFieldController<String>? dropDownValueController3;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode5;
TextEditingController? textController5;
String? Function(BuildContext, String?)? textController5Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode6;
TextEditingController? textController6;
String? Function(BuildContext, String?)? textController6Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode7;
TextEditingController? textController7;
String? Function(BuildContext, String?)? textController7Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode8;
TextEditingController? textController8;
String? Function(BuildContext, String?)? textController8Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode9;
TextEditingController? textController9;
String? Function(BuildContext, String?)? textController9Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
textFieldFocusNode3?.dispose();
textController3?.dispose();
textFieldFocusNode4?.dispose();
textController4?.dispose();
textFieldFocusNode5?.dispose();
textController5?.dispose();
textFieldFocusNode6?.dispose();
textController6?.dispose();
textFieldFocusNode7?.dispose();
textController7?.dispose();
textFieldFocusNode8?.dispose();
textController8?.dispose();
textFieldFocusNode9?.dispose();
textController9?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec4_widget.dart' show Compsec4Widget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Compsec4Model extends FlutterModel<Compsec4Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,944 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'compsec4_model.dart';
export 'compsec4_model.dart';
class Compsec4Widget extends StatefulWidget {
const Compsec4Widget({Key? key}) : super(key: key);
@override
_Compsec4WidgetState createState() => _Compsec4WidgetState();
}
class _Compsec4WidgetState extends State<Compsec4Widget> {
late Compsec4Model _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => Compsec4Model());
}
@override
void dispose() {
_model.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Scaffold(
key: scaffoldKey,
backgroundColor: Color(0xFFEBEBE4),
drawer: Container(
width: 180.0,
child: Drawer(
elevation: 16.0,
child: Container(
width: 100.0,
height: 100.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 80.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 8.0, 0.0, 0.0),
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
shape: BoxShape.circle,
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/company.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 8.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'g2r0v4x0' /* ABC Ltd */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account1');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
5.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/account.png',
width: 50.0,
height: 50.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'ds84qstf' /* Account */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('tnc');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/document.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/tnc.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
17.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'djl6yw5l' /* T&C */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.fitHeight,
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('policy');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/pp.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'tnq2vrel' /* Privacy
Policy */
,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('language');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/language.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'v445ykuq' /* Languages */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('setting');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/setting-2.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'3guxnphw' /* Settings */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
),
),
appBar: PreferredSize(
preferredSize: Size.fromHeight(0.0),
child: AppBar(
backgroundColor: Color(0xFFE7E36B),
automaticallyImplyLeading: false,
actions: [],
centerTitle: false,
elevation: 0.0,
),
),
body: SafeArea(
top: true,
child: Stack(
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 100.0, 0.0, 100.0),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 16.0, 16.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Expanded(
child: Align(
alignment: AlignmentDirectional(-1.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.safePop();
},
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: Color(0xFFD6DEE9),
shape: BoxShape.circle,
),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Expanded(
child: Align(
alignment:
AlignmentDirectional(
0.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(10.0, 0.0,
0.0, 0.0),
child: Icon(
Icons.arrow_back_ios,
color:
FlutterTheme.of(
context)
.secondaryText,
size: 24.0,
),
),
),
),
],
),
),
),
),
),
),
Align(
alignment: AlignmentDirectional(1.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('compsec');
},
text: FFLocalizations.of(context).getText(
'r9gnqjrl' /* Leave */,
),
options: FFButtonOptions(
width: 120.0,
height: 50.0,
padding: EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF9B0025),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 20.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
],
),
),
],
),
Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2641.svg',
width: 117.99,
height: 93.0,
fit: BoxFit.none,
),
),
),
],
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: Text(
FFLocalizations.of(context).getText(
'myxhuny4' /* Incorporation of Hong Kong Lim... */,
),
textAlign: TextAlign.center,
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 24.0,
),
),
),
],
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/Screenshot_2023-10-03_at_2.43.11_PM.png',
width: 361.0,
height: 40.0,
fit: BoxFit.cover,
),
),
],
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
child: Container(
width: 339.0,
height: 260.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x33000000),
offset: Offset(0.0, 2.0),
)
],
borderRadius: BorderRadius.circular(8.0),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
20.0, 20.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Text(
FFLocalizations.of(context).getText(
'sp543ge4' /* Do you need to set up an Airwa... */,
),
textAlign: TextAlign.start,
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 22.0,
),
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 20.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: 320.0,
height: 51.0,
decoration: BoxDecoration(
color: Color(0xFFF4F7FA),
borderRadius:
BorderRadius.circular(40.0),
border: Border.all(
color: Color(0xFF009B9A),
),
),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Icon(
Icons.check_sharp,
color: Color(0xFF009B9A),
size: 24.0,
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
10.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context)
.getText(
'mys13cwm' /* Yes */,
),
style: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Color(0xFF009B9A),
fontSize: 20.0,
),
),
),
],
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 20.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: 320.0,
height: 51.0,
decoration: BoxDecoration(
color: Color(0xFFF4F7FA),
borderRadius:
BorderRadius.circular(40.0),
border: Border.all(
color: Color(0xFF009B9A),
),
),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Icon(
Icons.close_rounded,
color: Color(0xFF009B9A),
size: 24.0,
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
10.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context)
.getText(
'ca3kq4q4' /* No */,
),
style: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Color(0xFF009B9A),
fontSize: 20.0,
),
),
),
],
),
),
],
),
),
],
),
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 26.0, 0.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('compsec5');
},
text: FFLocalizations.of(context).getText(
'y8t66j72' /* Next */,
),
options: FFButtonOptions(
width: 339.0,
height: 50.0,
padding: EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF009B9A),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 26.0, 0.0, 0.0),
child: FFButtonWidget(
onPressed: () {
print('Button pressed ...');
},
text: FFLocalizations.of(context).getText(
'2aujthlt' /* Save as Draft */,
),
options: FFButtonOptions(
width: 339.0,
height: 50.0,
padding: EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF009B9A),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
],
),
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: wrapWithModel(
model: _model.navBar1Model,
updateCallback: () => setState(() {}),
child: NavBar1Widget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: wrapWithModel(
model: _model.appbarModel,
updateCallback: () => setState(() {}),
child: AppbarWidget(),
),
),
Align(
alignment: AlignmentDirectional(1.07, -0.97),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 550.0, 30.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('chatbox');
},
child: Container(
width: 71.0,
height: 71.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
shape: BoxShape.circle,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/message-2.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
),
),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,38 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec5_widget.dart' show Compsec5Widget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Compsec5Model extends FlutterModel<Compsec5Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,53 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_changeaddress_widget.dart' show CompsecChangeaddressWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecChangeaddressModel
extends FlutterModel<CompsecChangeaddressWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,137 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_radio_button.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import 'compsec_changedirector_widget.dart' show CompsecChangedirectorWidget;
import 'package:styled_divider/styled_divider.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecChangedirectorModel
extends FlutterModel<CompsecChangedirectorWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode3;
TextEditingController? textController3;
String? Function(BuildContext, String?)? textController3Validator;
// State field(s) for RadioButton widget.
FormFieldController<String>? radioButtonValueController;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode4;
TextEditingController? textController4;
String? Function(BuildContext, String?)? textController4Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode5;
TextEditingController? textController5;
String? Function(BuildContext, String?)? textController5Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode6;
TextEditingController? textController6;
String? Function(BuildContext, String?)? textController6Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode7;
TextEditingController? textController7;
String? Function(BuildContext, String?)? textController7Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode8;
TextEditingController? textController8;
String? Function(BuildContext, String?)? textController8Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode9;
TextEditingController? textController9;
String? Function(BuildContext, String?)? textController9Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode10;
TextEditingController? textController10;
String? Function(BuildContext, String?)? textController10Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode11;
TextEditingController? textController11;
String? Function(BuildContext, String?)? textController11Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode12;
TextEditingController? textController12;
String? Function(BuildContext, String?)? textController12Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode13;
TextEditingController? textController13;
String? Function(BuildContext, String?)? textController13Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
textFieldFocusNode3?.dispose();
textController3?.dispose();
textFieldFocusNode4?.dispose();
textController4?.dispose();
textFieldFocusNode5?.dispose();
textController5?.dispose();
textFieldFocusNode6?.dispose();
textController6?.dispose();
textFieldFocusNode7?.dispose();
textController7?.dispose();
textFieldFocusNode8?.dispose();
textController8?.dispose();
textFieldFocusNode9?.dispose();
textController9?.dispose();
textFieldFocusNode10?.dispose();
textController10?.dispose();
textFieldFocusNode11?.dispose();
textController11?.dispose();
textFieldFocusNode12?.dispose();
textController12?.dispose();
textFieldFocusNode13?.dispose();
textController13?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
String? get radioButtonValue => radioButtonValueController?.value;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,74 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_changename_widget.dart' show CompsecChangenameWidget;
import 'package:styled_divider/styled_divider.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecChangenameModel extends FlutterModel<CompsecChangenameWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode3;
TextEditingController? textController3;
String? Function(BuildContext, String?)? textController3Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode4;
TextEditingController? textController4;
String? Function(BuildContext, String?)? textController4Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode5;
TextEditingController? textController5;
String? Function(BuildContext, String?)? textController5Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
textFieldFocusNode3?.dispose();
textController3?.dispose();
textFieldFocusNode4?.dispose();
textController4?.dispose();
textFieldFocusNode5?.dispose();
textController5?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,118 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_changesecr_o_rdir_widget.dart'
show CompsecChangesecrORdirWidget;
import 'package:styled_divider/styled_divider.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecChangesecrORdirModel
extends FlutterModel<CompsecChangesecrORdirWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode3;
TextEditingController? textController3;
String? Function(BuildContext, String?)? textController3Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode4;
TextEditingController? textController4;
String? Function(BuildContext, String?)? textController4Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode5;
TextEditingController? textController5;
String? Function(BuildContext, String?)? textController5Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode6;
TextEditingController? textController6;
String? Function(BuildContext, String?)? textController6Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode7;
TextEditingController? textController7;
String? Function(BuildContext, String?)? textController7Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode8;
TextEditingController? textController8;
String? Function(BuildContext, String?)? textController8Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode9;
TextEditingController? textController9;
String? Function(BuildContext, String?)? textController9Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode10;
TextEditingController? textController10;
String? Function(BuildContext, String?)? textController10Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode11;
TextEditingController? textController11;
String? Function(BuildContext, String?)? textController11Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
textFieldFocusNode3?.dispose();
textController3?.dispose();
textFieldFocusNode4?.dispose();
textController4?.dispose();
textFieldFocusNode5?.dispose();
textController5?.dispose();
textFieldFocusNode6?.dispose();
textController6?.dispose();
textFieldFocusNode7?.dispose();
textController7?.dispose();
textFieldFocusNode8?.dispose();
textController8?.dispose();
textFieldFocusNode9?.dispose();
textController9?.dispose();
textFieldFocusNode10?.dispose();
textController10?.dispose();
textFieldFocusNode11?.dispose();
textController11?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,109 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_radio_button.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import 'compsec_changesecretary_widget.dart' show CompsecChangesecretaryWidget;
import 'package:styled_divider/styled_divider.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecChangesecretaryModel
extends FlutterModel<CompsecChangesecretaryWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// State field(s) for RadioButton widget.
FormFieldController<String>? radioButtonValueController;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode3;
TextEditingController? textController3;
String? Function(BuildContext, String?)? textController3Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode4;
TextEditingController? textController4;
String? Function(BuildContext, String?)? textController4Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode5;
TextEditingController? textController5;
String? Function(BuildContext, String?)? textController5Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode6;
TextEditingController? textController6;
String? Function(BuildContext, String?)? textController6Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode7;
TextEditingController? textController7;
String? Function(BuildContext, String?)? textController7Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode8;
TextEditingController? textController8;
String? Function(BuildContext, String?)? textController8Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode9;
TextEditingController? textController9;
String? Function(BuildContext, String?)? textController9Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
textFieldFocusNode3?.dispose();
textController3?.dispose();
textFieldFocusNode4?.dispose();
textController4?.dispose();
textFieldFocusNode5?.dispose();
textController5?.dispose();
textFieldFocusNode6?.dispose();
textController6?.dispose();
textFieldFocusNode7?.dispose();
textController7?.dispose();
textFieldFocusNode8?.dispose();
textController8?.dispose();
textFieldFocusNode9?.dispose();
textController9?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
String? get radioButtonValue => radioButtonValueController?.value;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,95 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_checkout_widget.dart' show CompsecCheckoutWidget;
import 'package:styled_divider/styled_divider.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecCheckoutModel extends FlutterModel<CompsecCheckoutWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode3;
TextEditingController? textController3;
String? Function(BuildContext, String?)? textController3Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode4;
TextEditingController? textController4;
String? Function(BuildContext, String?)? textController4Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode5;
TextEditingController? textController5;
String? Function(BuildContext, String?)? textController5Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode6;
TextEditingController? textController6;
String? Function(BuildContext, String?)? textController6Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode7;
TextEditingController? textController7;
String? Function(BuildContext, String?)? textController7Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode8;
TextEditingController? textController8;
String? Function(BuildContext, String?)? textController8Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
textFieldFocusNode3?.dispose();
textController3?.dispose();
textFieldFocusNode4?.dispose();
textController4?.dispose();
textFieldFocusNode5?.dispose();
textController5?.dispose();
textFieldFocusNode6?.dispose();
textController6?.dispose();
textFieldFocusNode7?.dispose();
textController7?.dispose();
textFieldFocusNode8?.dispose();
textController8?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,39 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_checkout1_widget.dart' show CompsecCheckout1Widget;
import 'package:styled_divider/styled_divider.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecCheckout1Model extends FlutterModel<CompsecCheckout1Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_checkout2_widget.dart' show CompsecCheckout2Widget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecCheckout2Model extends FlutterModel<CompsecCheckout2Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,814 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'compsec_checkout2_model.dart';
export 'compsec_checkout2_model.dart';
class CompsecCheckout2Widget extends StatefulWidget {
const CompsecCheckout2Widget({Key? key}) : super(key: key);
@override
_CompsecCheckout2WidgetState createState() => _CompsecCheckout2WidgetState();
}
class _CompsecCheckout2WidgetState extends State<CompsecCheckout2Widget> {
late CompsecCheckout2Model _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => CompsecCheckout2Model());
}
@override
void dispose() {
_model.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Scaffold(
key: scaffoldKey,
backgroundColor: Color(0xFFEBEBE4),
drawer: Container(
width: 180.0,
child: Drawer(
elevation: 16.0,
child: Container(
width: 100.0,
height: 100.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 80.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 8.0, 0.0, 0.0),
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
shape: BoxShape.circle,
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/company.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 8.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'cuod19rg' /* ABC Ltd */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account1');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
5.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/account.png',
width: 50.0,
height: 50.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'nh2dytrk' /* Account */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('tnc');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/document.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/tnc.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
17.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'ksj504qd' /* T&C */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.fitHeight,
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('policy');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/pp.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'dejr7ecw' /* Privacy
Policy */
,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('language');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/language.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'on5846b0' /* Languages */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('setting');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/setting-2.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'iyiqp437' /* Settings */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
),
),
appBar: PreferredSize(
preferredSize: Size.fromHeight(0.0),
child: AppBar(
backgroundColor: Color(0xFFE7E36B),
automaticallyImplyLeading: false,
actions: [],
centerTitle: false,
elevation: 0.0,
),
),
body: SafeArea(
top: true,
child: Stack(
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 100.0, 0.0, 0.0),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 24.0, 0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Container(
width: 358.0,
height: 340.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
borderRadius: BorderRadius.circular(0.0),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 358.0,
height: 50.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Color(0xFF7DB979),
Color(0xFF26BBAA)
],
stops: [0.0, 1.0],
begin: AlignmentDirectional(
-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
),
child: Align(
alignment:
AlignmentDirectional(0.0, 0.0),
child: Text(
FFLocalizations.of(context)
.getText(
'exuucygx' /* Checkout */,
),
style:
FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Roboto',
color: Colors.white,
fontSize: 24.0,
),
),
),
),
],
),
Column(
mainAxisSize: MainAxisSize.max,
children: [
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Padding(
padding: EdgeInsetsDirectional
.fromSTEB(
10.0, 10.0, 0.0, 16.0),
child: Text(
FFLocalizations.of(context)
.getText(
'pld3713b' /* Cart Summary */,
),
style:
FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
fontSize: 20.0,
),
),
),
],
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
0.0, 10.0, 0.0, 16.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/tick-circle.svg',
width: 40.0,
height: 40.0,
fit: BoxFit.none,
),
),
Padding(
padding: EdgeInsetsDirectional
.fromSTEB(
10.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context)
.getText(
'gcuwo4ha' /* Payment failed */,
),
style: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
fontSize: 20.0,
),
),
),
],
),
),
Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Text(
FFLocalizations.of(context)
.getText(
'0nzqpt8d' /* Your payment was not successfu... */,
),
textAlign: TextAlign.center,
style:
FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
fontSize: 20.0,
),
),
),
],
),
],
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
10.0, 24.0, 10.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 10.0, 0.0),
child: FFButtonWidget(
onPressed: () {
print('Button pressed ...');
},
text: FFLocalizations.of(context)
.getText(
'si3kr37t' /* Back */,
),
options: FFButtonOptions(
width: 159.0,
height: 50.0,
padding: EdgeInsetsDirectional
.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding:
EdgeInsetsDirectional
.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF9B0025),
textStyle:
FlutterTheme.of(context)
.titleSmall
.override(
fontFamily:
'Readex Pro',
color: Colors.white,
fontSize: 20.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
10.0, 0.0, 0.0, 0.0),
child: FFButtonWidget(
onPressed: () {
print('Button pressed ...');
},
text: FFLocalizations.of(context)
.getText(
'35pmsilb' /* Try again */,
),
options: FFButtonOptions(
width: 159.0,
height: 50.0,
padding: EdgeInsetsDirectional
.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding:
EdgeInsetsDirectional
.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFFF3CF5D),
textStyle: FlutterTheme.of(
context)
.titleSmall
.override(
fontFamily: 'Readex Pro',
color: Color(0xFF364257),
fontSize: 20.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
),
),
],
),
),
],
),
),
),
],
),
),
],
),
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: wrapWithModel(
model: _model.navBar1Model,
updateCallback: () => setState(() {}),
child: NavBar1Widget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: wrapWithModel(
model: _model.appbarModel,
updateCallback: () => setState(() {}),
child: AppbarWidget(),
),
),
Align(
alignment: AlignmentDirectional(1.07, -0.97),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 550.0, 30.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('chatbox');
},
child: Container(
width: 71.0,
height: 71.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
shape: BoxShape.circle,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/message-2.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
),
),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,40 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_digital_trans_list_widget.dart'
show CompsecDigitalTransListWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecDigitalTransListModel
extends FlutterModel<CompsecDigitalTransListWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,995 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'compsec_digital_trans_list_model.dart';
export 'compsec_digital_trans_list_model.dart';
class CompsecDigitalTransListWidget extends StatefulWidget {
const CompsecDigitalTransListWidget({Key? key}) : super(key: key);
@override
_CompsecDigitalTransListWidgetState createState() =>
_CompsecDigitalTransListWidgetState();
}
class _CompsecDigitalTransListWidgetState
extends State<CompsecDigitalTransListWidget> {
late CompsecDigitalTransListModel _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => CompsecDigitalTransListModel());
}
@override
void dispose() {
_model.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Scaffold(
key: scaffoldKey,
backgroundColor: Color(0xFFEBEBE4),
drawer: Container(
width: 180.0,
child: Drawer(
elevation: 16.0,
child: Container(
width: 100.0,
height: 100.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 80.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 8.0, 0.0, 0.0),
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
shape: BoxShape.circle,
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/company.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 8.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'yz2l3zvs' /* ABC Ltd */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account1');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
5.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/account.png',
width: 50.0,
height: 50.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'6l2w7wu4' /* Account */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('tnc');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/document.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/tnc.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
17.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'mzy1i2yr' /* T&C */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.fitHeight,
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('policy');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/pp.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'yo3lzcce' /* Privacy
Policy */
,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('language');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/language.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'ij5ea47l' /* Languages */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('setting');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/setting-2.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'3buniqht' /* Settings */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
),
),
appBar: PreferredSize(
preferredSize: Size.fromHeight(0.0),
child: AppBar(
backgroundColor: Color(0xFFE7E36B),
automaticallyImplyLeading: false,
actions: [],
centerTitle: false,
elevation: 0.0,
),
),
body: SafeArea(
top: true,
child: Stack(
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 100.0, 0.0, 100.0),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 8.0),
child: Text(
FFLocalizations.of(context).getText(
'7r2vwrfd' /* Digital Transformation list */,
),
textAlign: TextAlign.center,
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Color(0xFF364257),
fontSize: 24.0,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 16.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
18.0, 0.0, 0.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('compsec');
},
text: FFLocalizations.of(context).getText(
'3llplg3z' /* Apply for service */,
),
options: FFButtonOptions(
width: 154.0,
height: 50.0,
padding: EdgeInsets.all(0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFFF3CF5D),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Roboto',
color: Color(0xFF364257),
fontSize: 16.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
10.0, 0.0, 18.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('search');
},
text: FFLocalizations.of(context).getText(
'n9505fuc' /* Document Library */,
),
options: FFButtonOptions(
width: 154.0,
height: 50.0,
padding: EdgeInsets.all(0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF009B9A),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Roboto',
color: Colors.white,
fontSize: 16.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
),
),
],
),
),
],
),
),
),
Column(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 358.0,
height: 600.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 10.0, 0.0, 0.0),
child: Container(
width: 328.0,
height: 172.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x33000000),
offset: Offset(0.0, 2.0),
)
],
borderRadius: BorderRadius.circular(8.0),
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
8.0, 8.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
ClipRRect(
borderRadius:
BorderRadius.circular(
8.0),
child: SvgPicture.asset(
'assets/images/Menu.svg',
width: 24.0,
height: 24.0,
fit: BoxFit.contain,
),
),
],
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
8.0, 5.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
ClipRRect(
borderRadius:
BorderRadius.circular(
8.0),
child: SvgPicture.asset(
'assets/images/XMLID_2001_.svg',
width: 45.0,
height: 58.0,
fit: BoxFit.none,
),
),
Expanded(
child: Align(
alignment:
AlignmentDirectional(
0.0, -1.0),
child: Column(
mainAxisSize:
MainAxisSize.max,
crossAxisAlignment:
CrossAxisAlignment
.start,
children: [
Row(
mainAxisSize:
MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
10.0,
0.0,
0.0,
5.0),
child: Text(
FFLocalizations.of(
context)
.getText(
'9py0zgub' /* DCE Food Delivery Ltd_2... */,
),
style: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
fontSize:
16.0,
),
),
),
],
),
Align(
alignment:
AlignmentDirectional(
-1.0, 0.0),
child: Row(
mainAxisSize:
MainAxisSize
.max,
children: [
Align(
alignment:
AlignmentDirectional(
-1.0,
0.0),
child: Padding(
padding: EdgeInsetsDirectional
.fromSTEB(
10.0,
0.0,
0.0,
5.0),
child: Text(
FFLocalizations.of(
context)
.getText(
'lik6hpca' /* Bank statement */,
),
style: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
fontSize:
16.0,
),
),
),
),
],
),
),
Align(
alignment:
AlignmentDirectional(
-1.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
10.0,
0.0,
0.0,
5.0),
child: Text(
FFLocalizations.of(
context)
.getText(
'ighuxkoa' /* CI */,
),
style: FlutterTheme
.of(context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
fontSize:
16.0,
),
),
),
),
Row(
mainAxisSize:
MainAxisSize.max,
children: [
Align(
alignment:
AlignmentDirectional(
-1.0,
0.0),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
10.0,
0.0,
0.0,
0.0),
child: Text(
FFLocalizations.of(
context)
.getText(
'3smqrf5a' /* Submitted */,
),
style: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
color: Color(
0xFF364257),
),
),
),
),
],
),
],
),
),
),
Expanded(
child: Align(
alignment:
AlignmentDirectional(
1.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
0.0,
0.0,
8.0,
0.0),
child: Container(
width: 34.0,
height: 34.0,
decoration:
BoxDecoration(
color:
Color(0xFF009B9A),
shape:
BoxShape.circle,
),
child: Align(
alignment:
AlignmentDirectional(
0.0, 0.0),
child: Icon(
Icons
.remove_red_eye_outlined,
color: Colors.white,
size: 24.0,
),
),
),
),
),
),
],
),
),
Expanded(
child: Row(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment:
CrossAxisAlignment.end,
children: [
Expanded(
child: Align(
alignment:
AlignmentDirectional(
1.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
0.0,
0.0,
10.0,
0.0),
child: Text(
FFLocalizations.of(
context)
.getText(
'2kcz55ij' /* 20230515-13:36 */,
),
style:
FlutterTheme.of(
context)
.bodyMedium,
),
),
),
),
],
),
),
],
),
),
),
),
],
),
),
),
],
),
],
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: wrapWithModel(
model: _model.navBar1Model,
updateCallback: () => setState(() {}),
child: NavBar1Widget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: wrapWithModel(
model: _model.appbarModel,
updateCallback: () => setState(() {}),
child: AppbarWidget(),
),
),
Align(
alignment: AlignmentDirectional(1.07, -0.97),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 550.0, 30.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('chatbox');
},
child: Container(
width: 71.0,
height: 71.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
shape: BoxShape.circle,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/message-2.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
),
),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,43 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_choice_chips.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import 'compsec_enq_widget.dart' show CompsecEnqWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecEnqModel extends FlutterModel<CompsecEnqWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for ChoiceChips widget.
String? choiceChipsValue;
FormFieldController<List<String>>? choiceChipsValueController;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,895 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_choice_chips.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'compsec_enq_model.dart';
export 'compsec_enq_model.dart';
class CompsecEnqWidget extends StatefulWidget {
const CompsecEnqWidget({Key? key}) : super(key: key);
@override
_CompsecEnqWidgetState createState() => _CompsecEnqWidgetState();
}
class _CompsecEnqWidgetState extends State<CompsecEnqWidget> {
late CompsecEnqModel _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => CompsecEnqModel());
}
@override
void dispose() {
_model.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Scaffold(
key: scaffoldKey,
backgroundColor: Color(0xFFEBEBE4),
drawer: Container(
width: 180.0,
child: Drawer(
elevation: 16.0,
child: Container(
width: 100.0,
height: 100.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 80.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 8.0, 0.0, 0.0),
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
shape: BoxShape.circle,
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/company.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 8.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'oyzkh00k' /* ABC Ltd */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account1');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
5.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/account.png',
width: 50.0,
height: 50.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'ibo2wafo' /* Account */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('tnc');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/document.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/tnc.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
17.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'3d5b5kuh' /* T&C */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.fitHeight,
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('policy');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/pp.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'862af5n0' /* Privacy
Policy */
,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('language');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/language.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'ug9n7vaz' /* Languages */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('setting');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/setting-2.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'z7m25utr' /* Settings */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
),
),
appBar: PreferredSize(
preferredSize: Size.fromHeight(0.0),
child: AppBar(
backgroundColor: Color(0xFFE7E36B),
automaticallyImplyLeading: false,
actions: [],
centerTitle: false,
elevation: 0.0,
),
),
body: SafeArea(
top: true,
child: Stack(
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 100.0, 0.0, 100.0),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 8.0),
child: Text(
FFLocalizations.of(context).getText(
'mmg5480g' /* Company Secretary Enquiry hist... */,
),
textAlign: TextAlign.center,
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Color(0xFF364257),
fontSize: 24.0,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 16.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
18.0, 0.0, 0.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('compsec');
},
text: FFLocalizations.of(context).getText(
'et90l2xu' /* Apply for service */,
),
options: FFButtonOptions(
width: 154.0,
height: 50.0,
padding: EdgeInsets.all(0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFFF3CF5D),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Roboto',
color: Color(0xFF364257),
fontSize: 16.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
10.0, 0.0, 18.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('search');
},
text: FFLocalizations.of(context).getText(
'kqyv3p7r' /* Document Library */,
),
options: FFButtonOptions(
width: 154.0,
height: 50.0,
padding: EdgeInsets.all(0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF009B9A),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Roboto',
color: Colors.white,
fontSize: 16.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
),
),
],
),
),
],
),
),
),
Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 16.0, 0.0, 0.0),
child: Container(
width: () {
if (MediaQuery.sizeOf(context).width < 428.0) {
return 328.0;
} else if (MediaQuery.sizeOf(context).width >=
428.0) {
return 358.0;
} else {
return 338.0;
}
}(),
height: 160.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x33000000),
offset: Offset(0.0, 2.0),
)
],
borderRadius: BorderRadius.circular(8.0),
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 14.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Row(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional
.fromSTEB(
10.0, 0.0, 0.0, 5.0),
child: Text(
FFLocalizations.of(context)
.getText(
'7bc9dudd' /* Other services request1 */,
),
style: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
color:
Color(0xFF364257),
fontSize: 16.0,
),
),
),
],
),
Align(
alignment: AlignmentDirectional(
-1.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Align(
alignment:
AlignmentDirectional(
-1.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
10.0,
0.0,
0.0,
5.0),
child: Text(
FFLocalizations.of(
context)
.getText(
'h780bz89' /* Submitted date 2023/05/23 15:5... */,
),
style: FlutterTheme
.of(context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
color: Color(
0xFF6D7581),
fontSize: 14.0,
),
),
),
),
],
),
),
],
),
Expanded(
child: Align(
alignment:
AlignmentDirectional(1.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional
.fromSTEB(
0.0, 0.0, 10.0, 0.0),
child: Icon(
Icons.search,
color: Color(0xFF009B9A),
size: 30.0,
),
),
),
),
],
),
),
Expanded(
child: Row(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment:
CrossAxisAlignment.end,
children: [
Expanded(
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 17.0),
child: FlutterChoiceChips(
options: [
ChipData(
FFLocalizations.of(context)
.getText(
'nq1xhsvx' /* Waiting for reply */,
))
],
onChanged: (val) => setState(() =>
_model.choiceChipsValue =
val?.first),
selectedChipStyle: ChipStyle(
backgroundColor:
Color(0xFFD6DEE9),
textStyle: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color:
FlutterTheme.of(
context)
.primaryText,
),
iconColor:
FlutterTheme.of(context)
.primaryText,
iconSize: 18.0,
elevation: 4.0,
borderRadius:
BorderRadius.circular(16.0),
),
unselectedChipStyle: ChipStyle(
backgroundColor:
Color(0xFFD6DEE9),
textStyle: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color:
FlutterTheme.of(
context)
.secondaryText,
),
iconColor:
FlutterTheme.of(context)
.secondaryText,
iconSize: 18.0,
elevation: 0.0,
borderRadius:
BorderRadius.circular(16.0),
),
chipSpacing: 12.0,
rowSpacing: 12.0,
multiselect: false,
alignment: WrapAlignment.start,
controller: _model
.choiceChipsValueController ??=
FormFieldController<
List<String>>(
[],
),
wrapped: true,
),
),
),
],
),
),
],
),
),
),
),
],
),
],
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: wrapWithModel(
model: _model.navBar1Model,
updateCallback: () => setState(() {}),
child: NavBar1Widget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: wrapWithModel(
model: _model.appbarModel,
updateCallback: () => setState(() {}),
child: AppbarWidget(),
),
),
Align(
alignment: AlignmentDirectional(1.07, -0.97),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 550.0, 30.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('chatbox');
},
child: Container(
width: 71.0,
height: 71.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
shape: BoxShape.circle,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/message-2.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
),
),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,43 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_choice_chips.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import 'compsec_enq1_widget.dart' show CompsecEnq1Widget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecEnq1Model extends FlutterModel<CompsecEnq1Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for ChoiceChips widget.
String? choiceChipsValue;
FormFieldController<List<String>>? choiceChipsValueController;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,859 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_choice_chips.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'compsec_enq1_model.dart';
export 'compsec_enq1_model.dart';
class CompsecEnq1Widget extends StatefulWidget {
const CompsecEnq1Widget({Key? key}) : super(key: key);
@override
_CompsecEnq1WidgetState createState() => _CompsecEnq1WidgetState();
}
class _CompsecEnq1WidgetState extends State<CompsecEnq1Widget> {
late CompsecEnq1Model _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => CompsecEnq1Model());
}
@override
void dispose() {
_model.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Scaffold(
key: scaffoldKey,
backgroundColor: Color(0xFFEBEBE4),
drawer: Container(
width: 180.0,
child: Drawer(
elevation: 16.0,
child: Container(
width: 100.0,
height: 100.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 80.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 8.0, 0.0, 0.0),
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
shape: BoxShape.circle,
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/company.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 8.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'933rdayx' /* ABC Ltd */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account1');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
5.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/account.png',
width: 50.0,
height: 50.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'ieo0d4gw' /* Account */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('tnc');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/document.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/tnc.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
17.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'bjnac0xr' /* T&C */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.fitHeight,
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('policy');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/pp.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'svctquyo' /* Privacy
Policy */
,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('language');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/language.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'wbe7559x' /* Languages */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('setting');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/setting-2.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'gksndkrp' /* Settings */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
),
),
appBar: PreferredSize(
preferredSize: Size.fromHeight(0.0),
child: AppBar(
backgroundColor: Color(0xFFE7E36B),
automaticallyImplyLeading: false,
actions: [],
centerTitle: false,
elevation: 0.0,
),
),
body: SafeArea(
top: true,
child: Stack(
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 100.0, 0.0, 100.0),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 24.0, 0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Stack(
children: [
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Container(
width: 358.0,
height: 700.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
borderRadius: BorderRadius.circular(0.0),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 358.0,
height: 50.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Color(0xFF7DB979),
Color(0xFF26BBAA)
],
stops: [0.0, 1.0],
begin: AlignmentDirectional(
-1.0, 0.0),
end: AlignmentDirectional(
1.0, 0),
),
),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(0.0, 0.0,
13.66, 0.0),
child: ClipRRect(
borderRadius:
BorderRadius.circular(
8.0),
child: SvgPicture.asset(
'assets/images/Frame_2609120.svg',
width: 32.0,
height: 32.0,
fit: BoxFit.cover,
),
),
),
Align(
alignment:
AlignmentDirectional(
0.0, 0.0),
child: Text(
FFLocalizations.of(
context)
.getText(
'nzy2s88n' /* Enquiry history */,
),
style:
FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily:
'Roboto',
fontSize: 24.0,
),
),
),
],
),
),
],
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
0.0, 19.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Expanded(
child: Align(
alignment:
AlignmentDirectional(
1.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(0.0, 0.0,
15.0, 0.0),
child:
FlutterChoiceChips(
options: [
ChipData(
FFLocalizations.of(
context)
.getText(
'xm7e82s1' /* Completed */,
))
],
onChanged: (val) =>
setState(() => _model
.choiceChipsValue =
val?.first),
selectedChipStyle:
ChipStyle(
backgroundColor:
Color(0xFFD6DEE9),
textStyle:
FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
color: FlutterTheme.of(
context)
.primaryText,
fontSize:
20.0,
),
iconColor:
FlutterTheme.of(
context)
.primaryText,
iconSize: 20.0,
elevation: 4.0,
borderRadius:
BorderRadius
.circular(20.0),
),
unselectedChipStyle:
ChipStyle(
backgroundColor:
FlutterTheme.of(
context)
.alternate,
textStyle:
FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
color: FlutterTheme.of(
context)
.secondaryText,
),
iconColor:
FlutterTheme.of(
context)
.secondaryText,
iconSize: 18.0,
elevation: 0.0,
borderRadius:
BorderRadius
.circular(16.0),
),
chipSpacing: 12.0,
rowSpacing: 12.0,
multiselect: false,
alignment:
WrapAlignment.start,
controller: _model
.choiceChipsValueController ??=
FormFieldController<
List<String>>(
[],
),
wrapped: true,
),
),
),
),
],
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
0.0, 16.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional
.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context)
.getText(
'wk82yv8u' /* Other services request1 */,
),
style: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
fontSize: 24.0,
decoration:
TextDecoration
.underline,
),
),
),
],
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
0.0, 8.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional
.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context)
.getText(
'knc7k4io' /* Submitted date 2023/05/23 15:5... */,
),
style: FlutterTheme.of(
context)
.bodyMedium
.override(
fontFamily:
'Readex Pro',
color:
Color(0xFF6D7581),
fontSize: 16.0,
),
),
),
],
),
),
],
),
),
),
],
),
],
),
),
],
),
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: wrapWithModel(
model: _model.navBar1Model,
updateCallback: () => setState(() {}),
child: NavBar1Widget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: wrapWithModel(
model: _model.appbarModel,
updateCallback: () => setState(() {}),
child: AppbarWidget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.55),
child: FFButtonWidget(
onPressed: () {
print('Button pressed ...');
},
text: FFLocalizations.of(context).getText(
'v4dy23f8' /* Back */,
),
options: FFButtonOptions(
width: 304.0,
height: 54.0,
padding: EdgeInsets.all(0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
color: Color(0xFF9B0025),
textStyle: FlutterTheme.of(context).titleSmall.override(
fontFamily: 'Roboto',
color: Colors.white,
fontSize: 20.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
Align(
alignment: AlignmentDirectional(1.07, -0.97),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 550.0, 30.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('chatbox');
},
child: Container(
width: 71.0,
height: 71.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
shape: BoxShape.circle,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/message-2.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
),
),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,53 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_other_request_widget.dart' show CompsecOtherRequestWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecOtherRequestModel
extends FlutterModel<CompsecOtherRequestWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,879 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'compsec_other_request_model.dart';
export 'compsec_other_request_model.dart';
class CompsecOtherRequestWidget extends StatefulWidget {
const CompsecOtherRequestWidget({Key? key}) : super(key: key);
@override
_CompsecOtherRequestWidgetState createState() =>
_CompsecOtherRequestWidgetState();
}
class _CompsecOtherRequestWidgetState extends State<CompsecOtherRequestWidget> {
late CompsecOtherRequestModel _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => CompsecOtherRequestModel());
_model.textController1 ??= TextEditingController();
_model.textFieldFocusNode1 ??= FocusNode();
_model.textController2 ??= TextEditingController();
_model.textFieldFocusNode2 ??= FocusNode();
}
@override
void dispose() {
_model.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Scaffold(
key: scaffoldKey,
backgroundColor: Color(0xFFEBEBE4),
drawer: Container(
width: 180.0,
child: Drawer(
elevation: 16.0,
child: Container(
width: 100.0,
height: 100.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 80.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 8.0, 0.0, 0.0),
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
shape: BoxShape.circle,
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/company.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 8.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'mkohpxfv' /* ABC Ltd */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account1');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
5.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/account.png',
width: 50.0,
height: 50.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'fzeavuvg' /* Account */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('tnc');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/document.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/tnc.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
17.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'6ihqi5ko' /* T&C */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.fitHeight,
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('policy');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/pp.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'nxmne69v' /* Privacy
Policy */
,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('language');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/language.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'w4k8rcij' /* Languages */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('setting');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/setting-2.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'kd8uzprx' /* Settings */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
),
),
appBar: PreferredSize(
preferredSize: Size.fromHeight(0.0),
child: AppBar(
backgroundColor: Color(0xFFE7E36B),
automaticallyImplyLeading: false,
actions: [],
centerTitle: false,
elevation: 0.0,
),
),
body: SafeArea(
top: true,
child: Stack(
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 100.0, 0.0, 100.0),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 16.0, 16.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Align(
alignment: AlignmentDirectional(1.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('compsec');
},
text: FFLocalizations.of(context).getText(
'f5le6mqi' /* Leave */,
),
options: FFButtonOptions(
width: 100.0,
height: 50.0,
padding: EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF9B0025),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 20.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
],
),
),
],
),
Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Frame_2609120.svg',
width: 117.99,
height: 93.0,
fit: BoxFit.none,
),
),
),
],
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: Text(
FFLocalizations.of(context).getText(
'hesos50v' /* Other Requests */,
),
textAlign: TextAlign.center,
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 24.0,
),
),
),
],
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 24.0, 0.0, 0.0),
child: Container(
width: 358.0,
height: 362.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x33000000),
offset: Offset(0.0, 2.0),
)
],
borderRadius: BorderRadius.circular(8.0),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
20.0, 20.0, 20.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Text(
FFLocalizations.of(context).getText(
'37orb00e' /* Please be specific of the enqu... */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 16.0,
),
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
20.0, 20.0, 0.0, 12.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Text(
FFLocalizations.of(context).getText(
'ozxs8zew' /* Enquiry title */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 16.0,
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
20.0, 0.0, 20.0, 0.0),
child: TextFormField(
controller: _model.textController1,
focusNode: _model.textFieldFocusNode1,
autofocus: true,
obscureText: false,
decoration: InputDecoration(
labelStyle: FlutterTheme.of(context)
.labelMedium,
hintStyle: FlutterTheme.of(context)
.labelMedium,
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Color(0xFF6D7581),
width: 2.0,
),
borderRadius: BorderRadius.circular(40.0),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: FlutterTheme.of(context)
.primary,
width: 2.0,
),
borderRadius: BorderRadius.circular(40.0),
),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterTheme.of(context).error,
width: 2.0,
),
borderRadius: BorderRadius.circular(40.0),
),
focusedErrorBorder: OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterTheme.of(context).error,
width: 2.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
style:
FlutterTheme.of(context).bodyMedium,
validator: _model.textController1Validator
.asValidator(context),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
20.0, 20.0, 0.0, 12.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Text(
FFLocalizations.of(context).getText(
'fpt3ui1p' /* Enquiry details */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
fontSize: 16.0,
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
20.0, 0.0, 20.0, 0.0),
child: TextFormField(
controller: _model.textController2,
focusNode: _model.textFieldFocusNode2,
autofocus: true,
obscureText: false,
decoration: InputDecoration(
labelStyle: FlutterTheme.of(context)
.labelMedium,
hintStyle: FlutterTheme.of(context)
.labelMedium,
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Color(0xFF6D7581),
width: 2.0,
),
borderRadius: BorderRadius.circular(40.0),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: FlutterTheme.of(context)
.primary,
width: 2.0,
),
borderRadius: BorderRadius.circular(40.0),
),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterTheme.of(context).error,
width: 2.0,
),
borderRadius: BorderRadius.circular(40.0),
),
focusedErrorBorder: OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterTheme.of(context).error,
width: 2.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
style:
FlutterTheme.of(context).bodyMedium,
validator: _model.textController2Validator
.asValidator(context),
),
),
],
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 24.0, 0.0, 10.0),
child: FFButtonWidget(
onPressed: () {
print('Button pressed ...');
},
text: FFLocalizations.of(context).getText(
'7lu6ghzz' /* Submit */,
),
options: FFButtonOptions(
width: 339.0,
height: 50.0,
padding: EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0),
iconPadding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF009B9A),
textStyle: FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 20.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
],
),
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: wrapWithModel(
model: _model.navBar1Model,
updateCallback: () => setState(() {}),
child: NavBar1Widget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: wrapWithModel(
model: _model.appbarModel,
updateCallback: () => setState(() {}),
child: AppbarWidget(),
),
),
Align(
alignment: AlignmentDirectional(1.07, -0.97),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 550.0, 30.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('chatbox');
},
child: Container(
width: 71.0,
height: 71.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
shape: BoxShape.circle,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/message-2.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
),
),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,46 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_button_tabbar.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_queue_widget.dart' show CompsecQueueWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecQueueModel extends FlutterModel<CompsecQueueWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TabBar widget.
TabController? tabBarController;
int get tabBarCurrentIndex =>
tabBarController != null ? tabBarController!.index : 0;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
tabBarController?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,29 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_queue11_widget.dart' show CompsecQueue11Widget;
import 'package:badges/badges.dart' as badges;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecQueue11Model extends FlutterModel<CompsecQueue11Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {
unfocusNode.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,74 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_resignation_widget.dart' show CompsecResignationWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecResignationModel
extends FlutterModel<CompsecResignationWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode3;
TextEditingController? textController3;
String? Function(BuildContext, String?)? textController3Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode4;
TextEditingController? textController4;
String? Function(BuildContext, String?)? textController4Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode5;
TextEditingController? textController5;
String? Function(BuildContext, String?)? textController5Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
textFieldFocusNode3?.dispose();
textController3?.dispose();
textFieldFocusNode4?.dispose();
textController4?.dispose();
textFieldFocusNode5?.dispose();
textController5?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,39 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_servicedraft_widget.dart' show CompsecServicedraftWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecServicedraftModel
extends FlutterModel<CompsecServicedraftWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,804 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'compsec_servicedraft_model.dart';
export 'compsec_servicedraft_model.dart';
class CompsecServicedraftWidget extends StatefulWidget {
const CompsecServicedraftWidget({Key? key}) : super(key: key);
@override
_CompsecServicedraftWidgetState createState() =>
_CompsecServicedraftWidgetState();
}
class _CompsecServicedraftWidgetState extends State<CompsecServicedraftWidget> {
late CompsecServicedraftModel _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => CompsecServicedraftModel());
}
@override
void dispose() {
_model.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Scaffold(
key: scaffoldKey,
backgroundColor: Color(0xFFEBEBE4),
drawer: Container(
width: 180.0,
child: Drawer(
elevation: 16.0,
child: Container(
width: 100.0,
height: 100.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 80.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 8.0, 0.0, 0.0),
child: Container(
width: 40.0,
height: 40.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
shape: BoxShape.circle,
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/company.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 8.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'xf5i5qfb' /* ABC Ltd */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('account1');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
5.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/account.png',
width: 50.0,
height: 50.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
8.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'ygq8qoi8' /* Account */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('tnc');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/document.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/tnc.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
17.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'xuo7l44g' /* T&C */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.fitHeight,
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('policy');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/pp.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.cover,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'5brlczli' /* Privacy
Policy */
,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('language');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/language.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'x6bm8ccv' /* Languages */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
Container(
width: 180.0,
height: 61.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('setting');
},
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Group_2640.svg',
width: 0.0,
height: 0.0,
fit: BoxFit.contain,
),
),
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
16.0, 0.0, 0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/setting-2.svg',
width: 30.0,
height: 30.0,
fit: BoxFit.contain,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'90ut0raf' /* Settings */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 16.0,
),
),
),
],
),
),
),
],
),
),
),
),
appBar: PreferredSize(
preferredSize: Size.fromHeight(0.0),
child: AppBar(
backgroundColor: Color(0xFFE7E36B),
automaticallyImplyLeading: false,
actions: [],
centerTitle: false,
elevation: 0.0,
),
),
body: SafeArea(
top: true,
child: Stack(
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 100.0, 0.0, 100.0),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 8.0),
child: Text(
FFLocalizations.of(context).getText(
'3z9qrult' /* Company Secretary
service dra... */
,
),
textAlign: TextAlign.center,
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Color(0xFF364257),
fontSize: 24.0,
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 16.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
18.0, 0.0, 0.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('compsec');
},
text:
FFLocalizations.of(context).getText(
'vtyrgsm8' /* Apply for service */,
),
options: FFButtonOptions(
width: 154.0,
height: 50.0,
padding: EdgeInsets.all(0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFFF3CF5D),
textStyle:
FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Roboto',
color: Color(0xFF364257),
fontSize: 16.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
10.0, 0.0, 18.0, 0.0),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('search');
},
text:
FFLocalizations.of(context).getText(
'c9ow45oz' /* Document Library */,
),
options: FFButtonOptions(
width: 154.0,
height: 50.0,
padding: EdgeInsets.all(0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 0.0),
color: Color(0xFF009B9A),
textStyle:
FlutterTheme.of(context)
.titleSmall
.override(
fontFamily: 'Roboto',
color: Colors.white,
fontSize: 16.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius:
BorderRadius.circular(40.0),
),
),
),
],
),
),
],
),
),
),
Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 10.0),
child: Container(
width: () {
if (MediaQuery.sizeOf(context).width < 428.0) {
return 328.0;
} else if (MediaQuery.sizeOf(context).width >=
428.0) {
return 358.0;
} else {
return 338.0;
}
}(),
height: 160.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
boxShadow: [
BoxShadow(
blurRadius: 4.0,
color: Color(0x33000000),
offset: Offset(0.0, 2.0),
)
],
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(0.0),
bottomRight: Radius.circular(14.0),
topLeft: Radius.circular(14.0),
topRight: Radius.circular(0.0),
),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 14.0, 14.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 17.0, 0.0),
child: ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/edit.svg',
width: 40.0,
height: 40.0,
fit: BoxFit.cover,
),
),
),
ClipRRect(
borderRadius:
BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/trash.svg',
width: 40.0,
height: 40.0,
fit: BoxFit.cover,
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
14.0, 13.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Text(
FFLocalizations.of(context).getText(
'h7c2ipdm' /* Incorporation of
Hong Kong Lim... */
,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Color(0xFF364257),
fontSize: 16.0,
decoration:
TextDecoration.underline,
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
14.0, 8.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Text(
FFLocalizations.of(context).getText(
'53krgbfj' /* Submitted date 2023/05/23 15:5... */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Color(0xFF6D7581),
),
),
],
),
),
],
),
),
),
],
),
],
),
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: wrapWithModel(
model: _model.navBar1Model,
updateCallback: () => setState(() {}),
child: NavBar1Widget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: wrapWithModel(
model: _model.appbarModel,
updateCallback: () => setState(() {}),
child: AppbarWidget(),
),
),
Align(
alignment: AlignmentDirectional(1.07, -0.97),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 550.0, 30.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('chatbox');
},
child: Container(
width: 71.0,
height: 71.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
shape: BoxShape.circle,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/message-2.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
),
),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,125 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'compsec_transferof_shares_widget.dart'
show CompsecTransferofSharesWidget;
import 'package:styled_divider/styled_divider.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CompsecTransferofSharesModel
extends FlutterModel<CompsecTransferofSharesWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode3;
TextEditingController? textController3;
String? Function(BuildContext, String?)? textController3Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode4;
TextEditingController? textController4;
String? Function(BuildContext, String?)? textController4Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode5;
TextEditingController? textController5;
String? Function(BuildContext, String?)? textController5Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode6;
TextEditingController? textController6;
String? Function(BuildContext, String?)? textController6Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode7;
TextEditingController? textController7;
String? Function(BuildContext, String?)? textController7Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode8;
TextEditingController? textController8;
String? Function(BuildContext, String?)? textController8Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode9;
TextEditingController? textController9;
String? Function(BuildContext, String?)? textController9Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode10;
TextEditingController? textController10;
String? Function(BuildContext, String?)? textController10Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode11;
TextEditingController? textController11;
String? Function(BuildContext, String?)? textController11Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode12;
TextEditingController? textController12;
String? Function(BuildContext, String?)? textController12Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
textFieldFocusNode3?.dispose();
textController3?.dispose();
textFieldFocusNode4?.dispose();
textController4?.dispose();
textFieldFocusNode5?.dispose();
textController5?.dispose();
textFieldFocusNode6?.dispose();
textController6?.dispose();
textFieldFocusNode7?.dispose();
textController7?.dispose();
textFieldFocusNode8?.dispose();
textController8?.dispose();
textFieldFocusNode9?.dispose();
textController9?.dispose();
textFieldFocusNode10?.dispose();
textController10?.dispose();
textFieldFocusNode11?.dispose();
textController11?.dispose();
textFieldFocusNode12?.dispose();
textController12?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,55 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_drop_down.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import 'search_widget.dart' show SearchWidget;
import 'package:easy_debounce/easy_debounce.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class SearchModel extends FlutterModel<SearchWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode;
TextEditingController? textController;
String? Function(BuildContext, String?)? textControllerValidator;
// State field(s) for DropDown widget.
String? dropDownValue;
FormFieldController<String>? dropDownValueController;
// State field(s) for CheckboxListTile widget.
bool? checkboxListTileValue;
// State field(s) for Checkbox widget.
bool? checkboxValue;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode?.dispose();
textController?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,20 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'alert_box_custom_widget.dart' show AlertBoxCustomWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class AlertBoxCustomModel extends FlutterModel<AlertBoxCustomWidget> {
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,20 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'alert_box_custom_o_k_widget.dart' show AlertBoxCustomOKWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class AlertBoxCustomOKModel extends FlutterModel<AlertBoxCustomOKWidget> {
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,115 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'alert_box_custom_o_k_model.dart';
export 'alert_box_custom_o_k_model.dart';
class AlertBoxCustomOKWidget extends StatefulWidget {
const AlertBoxCustomOKWidget({
Key? key,
this.text,
}) : super(key: key);
final String? text;
@override
_AlertBoxCustomOKWidgetState createState() => _AlertBoxCustomOKWidgetState();
}
class _AlertBoxCustomOKWidgetState extends State<AlertBoxCustomOKWidget> {
late AlertBoxCustomOKModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => AlertBoxCustomOKModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
context.watch<FFAppState>();
return Container(
width: 339.0,
height: 192.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context).secondaryBackground,
borderRadius: BorderRadius.circular(40.0),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(24.0, 24.0, 24.0, 0.0),
child: Text(
widget.text!,
textAlign: TextAlign.center,
style: FlutterTheme.of(context).bodyMedium.override(
fontFamily: 'Readex Pro',
fontSize: 20.0,
),
),
),
),
),
Expanded(
child: Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 24.0),
child: FFButtonWidget(
onPressed: () async {
Navigator.pop(context);
},
text: FFLocalizations.of(context).getText(
'3jiglf6t' /* OK */,
),
options: FFButtonOptions(
width: 304.0,
height: 54.0,
padding:
EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
color: Color(0xFF009B9A),
textStyle: FlutterTheme.of(context).titleSmall.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 20.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
),
),
],
),
);
}
}

View File

@@ -0,0 +1,115 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'alert_box_custom_model.dart';
export 'alert_box_custom_model.dart';
class AlertBoxCustomWidget extends StatefulWidget {
const AlertBoxCustomWidget({
Key? key,
this.text,
}) : super(key: key);
final String? text;
@override
_AlertBoxCustomWidgetState createState() => _AlertBoxCustomWidgetState();
}
class _AlertBoxCustomWidgetState extends State<AlertBoxCustomWidget> {
late AlertBoxCustomModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => AlertBoxCustomModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
context.watch<FFAppState>();
return Container(
width: 339.0,
height: 192.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context).secondaryBackground,
borderRadius: BorderRadius.circular(40.0),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(24.0, 24.0, 24.0, 0.0),
child: Text(
widget.text!,
textAlign: TextAlign.center,
style: FlutterTheme.of(context).bodyMedium.override(
fontFamily: 'Readex Pro',
fontSize: 20.0,
),
),
),
),
),
Expanded(
child: Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 24.0),
child: FFButtonWidget(
onPressed: () async {
context.safePop();
},
text: FFLocalizations.of(context).getText(
'4g627wq8' /* Back */,
),
options: FFButtonOptions(
width: 304.0,
height: 54.0,
padding:
EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
color: Color(0xFF9B0025),
textStyle: FlutterTheme.of(context).titleSmall.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 20.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
),
),
],
),
);
}
}

View File

@@ -0,0 +1,20 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'alert_box_widget.dart' show AlertBoxWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class AlertBoxModel extends FlutterModel<AlertBoxWidget> {
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,112 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'alert_box_model.dart';
export 'alert_box_model.dart';
class AlertBoxWidget extends StatefulWidget {
const AlertBoxWidget({Key? key}) : super(key: key);
@override
_AlertBoxWidgetState createState() => _AlertBoxWidgetState();
}
class _AlertBoxWidgetState extends State<AlertBoxWidget> {
late AlertBoxModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => AlertBoxModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
context.watch<FFAppState>();
return Container(
width: 339.0,
height: 192.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context).secondaryBackground,
borderRadius: BorderRadius.circular(40.0),
),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(24.0, 24.0, 24.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'7e2m047k' /* The new password confirmation ... */,
),
textAlign: TextAlign.center,
style: FlutterTheme.of(context).bodyMedium.override(
fontFamily: 'Readex Pro',
fontSize: 20.0,
),
),
),
),
),
Expanded(
child: Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 24.0),
child: FFButtonWidget(
onPressed: () async {
context.safePop();
},
text: FFLocalizations.of(context).getText(
'ngpsorqk' /* Back */,
),
options: FFButtonOptions(
width: 304.0,
height: 54.0,
padding:
EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
iconPadding:
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
color: Color(0xFF9B0025),
textStyle: FlutterTheme.of(context).titleSmall.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 20.0,
),
elevation: 3.0,
borderSide: BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(40.0),
),
),
),
),
),
],
),
);
}
}

View File

@@ -0,0 +1,21 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import 'appbar_widget.dart' show AppbarWidget;
import 'package:badges/badges.dart' as badges;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class AppbarModel extends FlutterModel<AppbarWidget> {
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,142 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import 'package:badges/badges.dart' as badges;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'appbar_model.dart';
export 'appbar_model.dart';
class AppbarWidget extends StatefulWidget {
const AppbarWidget({Key? key}) : super(key: key);
@override
_AppbarWidgetState createState() => _AppbarWidgetState();
}
class _AppbarWidgetState extends State<AppbarWidget> {
late AppbarModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => AppbarModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
context.watch<FFAppState>();
return Container(
width: double.infinity,
height: 105.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(0.0, -1.0),
end: AlignmentDirectional(0, 1.0),
),
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(40.0),
bottomRight: Radius.circular(40.0),
topLeft: Radius.circular(0.0),
topRight: Radius.circular(0.0),
),
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 20.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Align(
alignment: AlignmentDirectional(-1.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(20.0, 0.0, 0.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
Scaffold.of(context).openDrawer();
},
child: Icon(
Icons.density_medium_sharp,
color: FlutterTheme.of(context).secondaryText,
size: 30.0,
),
),
),
),
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
'assets/images/numstat+black_1.png',
width: 61.0,
height: 61.0,
fit: BoxFit.cover,
),
),
Align(
alignment: AlignmentDirectional(1.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 20.0, 0.0),
child: badges.Badge(
badgeContent: Text(
FFLocalizations.of(context).getText(
'trn1lsym' /* 1 */,
),
style: FlutterTheme.of(context).titleSmall.override(
fontFamily: 'Readex Pro',
color: Colors.white,
fontSize: 10.0,
),
),
showBadge: true,
shape: badges.BadgeShape.circle,
badgeColor: Color(0xFFFF0000),
elevation: 4.0,
padding: EdgeInsets.all(8.0),
position: badges.BadgePosition.topEnd(),
animationType: badges.BadgeAnimationType.scale,
toAnimate: true,
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('notification');
},
child: FaIcon(
FontAwesomeIcons.bell,
color: FlutterTheme.of(context).secondaryText,
size: 30.0,
),
),
),
),
),
],
),
),
);
}
}

View File

@@ -0,0 +1,27 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import 'chat_box_widget.dart' show ChatBoxWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class ChatBoxModel extends FlutterModel<ChatBoxWidget> {
/// State fields for stateful widgets in this component.
// State field(s) for MouseRegion widget.
bool mouseRegionHovered1 = false;
// State field(s) for MouseRegion widget.
bool mouseRegionHovered2 = false;
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,299 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'chat_box_model.dart';
export 'chat_box_model.dart';
class ChatBoxWidget extends StatefulWidget {
const ChatBoxWidget({Key? key}) : super(key: key);
@override
_ChatBoxWidgetState createState() => _ChatBoxWidgetState();
}
class _ChatBoxWidgetState extends State<ChatBoxWidget> {
late ChatBoxModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => ChatBoxModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
context.watch<FFAppState>();
return Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Stack(
alignment: AlignmentDirectional(0.0, 0.0),
children: [
Align(
alignment: AlignmentDirectional(1.07, 0.5),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 30.0, 0.0),
child: Container(
width: 71.0,
height: 71.0,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-1.0, 0.0),
end: AlignmentDirectional(1.0, 0),
),
shape: BoxShape.circle,
),
child: MouseRegion(
opaque: false,
cursor: SystemMouseCursors.click ?? MouseCursor.defer,
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/message-2.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
onEnter: ((event) async {
setState(() => _model.mouseRegionHovered1 = true);
setState(() {
FFAppState().showChat = true;
});
}),
onExit: ((event) async {
setState(() => _model.mouseRegionHovered1 = false);
setState(() {
FFAppState().showChat = false;
});
}),
),
),
),
),
if (FFAppState().showChat)
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 30.0, 0.0, 0.0),
child: Container(
width: 335.0,
height: 600.0,
decoration: BoxDecoration(
color: Color(0xFF009B9A),
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(0.0),
bottomRight: Radius.circular(0.0),
topLeft: Radius.circular(40.0),
topRight: Radius.circular(40.0),
),
),
child: MouseRegion(
opaque: false,
cursor: SystemMouseCursors.click ?? MouseCursor.defer,
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/whitemessage.svg',
width: 61.0,
height: 72.0,
fit: BoxFit.none,
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
10.0, 0.0, 0.0, 0.0),
child: Text(
FFLocalizations.of(context).getText(
'sgf4j0rn' /* How we can help? */,
),
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Color(0xFFEBEBE4),
fontSize: 24.0,
),
),
),
],
),
),
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
FFLocalizations.of(context).getText(
'lbw8sqrb' /* Send us a message and
we will... */
,
),
textAlign: TextAlign.center,
style: FlutterTheme.of(context)
.bodyMedium
.override(
fontFamily: 'Readex Pro',
color: Color(0xFFEBEBE4),
fontSize: 16.0,
),
),
],
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 30.0, 0.0, 0.0),
child: Container(
width: 300.0,
height: 85.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(0.0),
bottomRight: Radius.circular(40.0),
topLeft: Radius.circular(40.0),
topRight: Radius.circular(0.0),
),
),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/bk.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
Text(
FFLocalizations.of(context).getText(
'ltzjffri' /* Bookkeeping Service */,
),
style: FlutterTheme.of(context).bodyMedium,
),
Expanded(
child: Align(
alignment: AlignmentDirectional(1.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 20.0, 0.0),
child: Icon(
Icons.arrow_forward_ios,
color: FlutterTheme.of(context)
.secondaryText,
size: 16.0,
),
),
),
),
],
),
),
),
Padding(
padding:
EdgeInsetsDirectional.fromSTEB(0.0, 30.0, 0.0, 0.0),
child: Container(
width: 300.0,
height: 85.0,
decoration: BoxDecoration(
color: FlutterTheme.of(context)
.secondaryBackground,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(0.0),
bottomRight: Radius.circular(40.0),
topLeft: Radius.circular(40.0),
topRight: Radius.circular(0.0),
),
),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/chat.svg',
width: 100.0,
height: 100.0,
fit: BoxFit.none,
),
),
Text(
FFLocalizations.of(context).getText(
'amerkqzb' /* Company Secretary
Service */
,
),
style: FlutterTheme.of(context).bodyMedium,
),
Expanded(
child: Align(
alignment: AlignmentDirectional(1.0, 0.0),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 20.0, 0.0),
child: Icon(
Icons.arrow_forward_ios,
color: FlutterTheme.of(context)
.secondaryText,
size: 16.0,
),
),
),
),
],
),
),
),
],
),
onEnter: ((event) async {
setState(() => _model.mouseRegionHovered2 = true);
setState(() {
FFAppState().showChat = true;
});
}),
onExit: ((event) async {
setState(() => _model.mouseRegionHovered2 = false);
setState(() {
FFAppState().showChat = false;
});
}),
),
),
),
],
),
);
}
}

View File

@@ -0,0 +1,25 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/custom_functions.dart' as functions;
import 'checkbox_widget.dart' show CheckboxWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class CheckboxModel extends FlutterModel<CheckboxWidget> {
/// State fields for stateful widgets in this component.
// State field(s) for checkbox widget.
bool? checkboxValue;
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,102 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/custom_functions.dart' as functions;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'checkbox_model.dart';
export 'checkbox_model.dart';
class CheckboxWidget extends StatefulWidget {
const CheckboxWidget({
Key? key,
this.permissionList,
this.getPermissions,
}) : super(key: key);
final dynamic permissionList;
final List<int>? getPermissions;
@override
_CheckboxWidgetState createState() => _CheckboxWidgetState();
}
class _CheckboxWidgetState extends State<CheckboxWidget> {
late CheckboxModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => CheckboxModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
context.watch<FFAppState>();
return Theme(
data: ThemeData(
checkboxTheme: CheckboxThemeData(
visualDensity: VisualDensity.standard,
materialTapTargetSize: MaterialTapTargetSize.padded,
),
unselectedWidgetColor: FlutterTheme.of(context).secondaryText,
),
child: CheckboxListTile(
value: _model.checkboxValue ??= functions.comparePermission(
widget.getPermissions!.toList(),
getJsonField(
widget.permissionList,
r'''$.id''',
)),
onChanged: (newValue) async {
setState(() => _model.checkboxValue = newValue!);
if (newValue!) {
FFAppState().update(() {
FFAppState().addToAddPermissionsID(getJsonField(
widget.permissionList,
r'''$.id''',
).toString());
});
} else {
FFAppState().update(() {
FFAppState().addToRemovePermissionsID(getJsonField(
widget.permissionList,
r'''$.id''',
).toString());
});
}
},
title: Text(
getJsonField(
widget.permissionList,
r'''$.display_name''',
).toString(),
style: FlutterTheme.of(context).titleLarge.override(
fontFamily: 'Outfit',
fontSize: 16.0,
),
),
tileColor: Colors.black,
activeColor: Colors.white,
checkColor: Colors.black,
dense: false,
controlAffinity: ListTileControlAffinity.trailing,
),
);
}
}

View File

@@ -0,0 +1,33 @@
import '/flutterlib/flutter_icon_button.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/custom_functions.dart' as functions;
import 'date_widget.dart' show DateWidget;
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class DateModel extends FlutterModel<DateWidget> {
/// State fields for stateful widgets in this component.
// State field(s) for date widget.
FocusNode? dateFocusNode;
TextEditingController? dateController;
String? Function(BuildContext, String?)? dateControllerValidator;
DateTime? datePicked;
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {
dateFocusNode?.dispose();
dateController?.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,154 @@
import '/flutterlib/flutter_icon_button.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/custom_functions.dart' as functions;
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'date_model.dart';
export 'date_model.dart';
class DateWidget extends StatefulWidget {
const DateWidget({
Key? key,
this.companyMembers,
}) : super(key: key);
final dynamic companyMembers;
@override
_DateWidgetState createState() => _DateWidgetState();
}
class _DateWidgetState extends State<DateWidget> {
late DateModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => DateModel());
_model.dateController ??= TextEditingController();
_model.dateFocusNode ??= FocusNode();
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
context.watch<FFAppState>();
return Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 8.0, 0.0),
child: Container(
width: 326.0,
child: TextFormField(
controller: _model.dateController,
focusNode: _model.dateFocusNode,
textCapitalization: TextCapitalization.none,
readOnly: true,
obscureText: false,
decoration: InputDecoration(
hintText: FFLocalizations.of(context).getText(
'q97i0ohq' /* YYYY/MM/DD */,
),
hintStyle: FlutterTheme.of(context).labelMedium,
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Color(0xFF6D7581),
width: 2.0,
),
borderRadius: BorderRadius.circular(23.8),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: FlutterTheme.of(context).primary,
width: 2.0,
),
borderRadius: BorderRadius.circular(23.8),
),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
color: FlutterTheme.of(context).error,
width: 2.0,
),
borderRadius: BorderRadius.circular(23.8),
),
focusedErrorBorder: OutlineInputBorder(
borderSide: BorderSide(
color: FlutterTheme.of(context).error,
width: 2.0,
),
borderRadius: BorderRadius.circular(23.8),
),
filled: true,
fillColor: Colors.white,
),
style: FlutterTheme.of(context).bodyMedium.override(
fontFamily: 'Readex Pro',
fontSize: 16.0,
),
keyboardType: TextInputType.datetime,
validator: _model.dateControllerValidator.asValidator(context),
),
),
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 8.0, 0.0),
child: FlutterIconButton(
borderColor: FlutterTheme.of(context).primaryText,
borderRadius: 20.0,
borderWidth: 1.0,
buttonSize: 40.0,
fillColor: FlutterTheme.of(context).secondaryBackground,
icon: Icon(
Icons.calendar_month,
color: FlutterTheme.of(context).primaryText,
size: 24.0,
),
onPressed: () async {
final _datePickedDate = await showDatePicker(
context: context,
initialDate: getCurrentTimestamp,
firstDate: DateTime(1900),
lastDate: getCurrentTimestamp,
);
if (_datePickedDate != null) {
safeSetState(() {
_model.datePicked = DateTime(
_datePickedDate.year,
_datePickedDate.month,
_datePickedDate.day,
);
});
}
setState(() {
_model.dateController?.text =
functions.formatDate(_model.datePicked!.toString());
});
},
),
),
],
);
}
}

View File

@@ -0,0 +1,20 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import 'emptylist_widget.dart' show EmptylistWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class EmptylistModel extends FlutterModel<EmptylistWidget> {
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,54 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'emptylist_model.dart';
export 'emptylist_model.dart';
class EmptylistWidget extends StatefulWidget {
const EmptylistWidget({Key? key}) : super(key: key);
@override
_EmptylistWidgetState createState() => _EmptylistWidgetState();
}
class _EmptylistWidgetState extends State<EmptylistWidget> {
late EmptylistModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => EmptylistModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
context.watch<FFAppState>();
return ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: SvgPicture.asset(
'assets/images/Empty_List_Icon.svg',
width: 358.0,
height: 277.0,
fit: BoxFit.contain,
),
);
}
}

View File

@@ -0,0 +1,21 @@
import '/flutterlib/flutter_icon_button.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import 'nav_bar1_widget.dart' show NavBar1Widget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class NavBar1Model extends FlutterModel<NavBar1Widget> {
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

Some files were not shown because too many files have changed in this diff Show More