Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: project base #12

Merged
merged 13 commits into from
Feb 13, 2024
2 changes: 1 addition & 1 deletion ios/Flutter/AppFrameworkInfo.plist
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>11.0</string>
<string>12.0</string>
</dict>
</plist>
2 changes: 1 addition & 1 deletion ios/Podfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
platform :ios, '11.0'
platform :ios, '12.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
Expand Down
20 changes: 17 additions & 3 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,21 @@ PODS:
- TOCropViewController (~> 2.6.1)
- image_picker_ios (0.0.1):
- Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- sqflite (0.0.3):
- Flutter
- FlutterMacOS
- TOCropViewController (2.6.1)

DEPENDENCIES:
- Flutter (from `Flutter`)
- flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`)
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- sqflite (from `.symlinks/plugins/sqflite/darwin`)

SPEC REPOS:
trunk:
Expand All @@ -28,14 +36,20 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/image_cropper/ios"
image_picker_ios:
:path: ".symlinks/plugins/image_picker_ios/ios"
path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/darwin"
sqflite:
:path: ".symlinks/plugins/sqflite/darwin"

SPEC CHECKSUMS:
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069
image_cropper: a3291c624a953049bc6a02e1f8c8ceb162a24b25
image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5
image_picker_ios: 99dfe1854b4fa34d0364e74a78448a0151025425
path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863

PODFILE CHECKSUM: 7368163408c647b7eb699d0d788ba6718e18fb8d
PODFILE CHECKSUM: 4e8f8b2be68aeea4c0d5beb6ff1e79fface1d048

COCOAPODS: 1.15.2
6 changes: 3 additions & 3 deletions ios/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
Expand Down Expand Up @@ -429,7 +429,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
Expand Down Expand Up @@ -478,7 +478,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@

import 'package:flutter/material.dart';
import 'package:ice/app/extensions/build_context.dart';
import 'package:ice/app/extensions/num.dart';
import 'package:ice/app/extensions/theme_data.dart';
part './widgets/button_icon.dart';
part 'variants/button_icon.dart';

enum ButtonType {
primary,
Expand Down Expand Up @@ -54,11 +55,11 @@ class Button extends StatelessWidget {
OutlinedButton.styleFrom(
fixedSize: fixedSize,
tapTargetSize: MaterialTapTargetSize.shrinkWrap,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(12)),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(12.0.s)),
),
minimumSize: const Size(56, 56),
padding: const EdgeInsets.symmetric(horizontal: 16),
minimumSize: Size(56.0.s, 56.0.s),
padding: EdgeInsets.symmetric(horizontal: 16.0.s),
backgroundColor: _getBackgroundColor(context, type),
side: BorderSide(
color: _getBorderColor(context, type),
Expand All @@ -78,8 +79,9 @@ class Button extends StatelessWidget {
if (label != null)
Padding(
padding: EdgeInsets.only(
left: leadingIcon == null ? 0 : 8, // 8 move to constants
right: trailingIcon == null ? 0 : 8,
left:
leadingIcon == null ? 0 : 8.0.s, // 8 move to constants
right: trailingIcon == null ? 0 : 8.0.s,
),
child: label,
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ class _ButtonWithIcon extends Button {
required super.onPressed,
required Widget icon,
ButtonStyle style = const ButtonStyle(),
double size = 56,
double? size,
}) : super(
leadingIcon: icon,
style: style.merge(
OutlinedButton.styleFrom(
fixedSize: Size.square(size),
fixedSize: Size.square(size ?? 56.0.s),
padding: EdgeInsets.zero,
),
),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:ice/app/shared/widgets/button/button.dart';
import 'package:ice/app/components/button/button.dart';
import 'package:widgetbook/widgetbook.dart';
import 'package:widgetbook_annotation/widgetbook_annotation.dart' as widgetbook;

Expand Down
20 changes: 20 additions & 0 deletions lib/app/components/inputs/borders.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import 'package:flutter/material.dart';
import 'package:ice/app/extensions/num.dart';
import 'package:ice/app/features/core/providers/template_provider.dart';

class InputFieldBorder extends OutlineInputBorder {
InputFieldBorder({
BorderSide? borderSide,
}) : super(
borderSide: borderSide ?? const BorderSide(color: Colors.transparent),
borderRadius: BorderRadius.all(Radius.circular(16.0.s)),
);

factory InputFieldBorder.focused() => InputFieldBorder(
borderSide: BorderSide(color: appTemplate.colors.light.primaryAccent),
);

factory InputFieldBorder.error() => InputFieldBorder(
borderSide: BorderSide(color: appTemplate.colors.light.attentionRed),
);
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:ice/app/values/constants.dart';
import 'package:ice/app/extensions/num.dart';

class RoundedContainer extends Container {
RoundedContainer({
Expand All @@ -16,7 +16,7 @@ class RoundedContainer extends Container {
decoration: BoxDecoration(
border: border,
borderRadius: BorderRadius.all(
Radius.circular(radius ?? kDefaultBorderRadiusValue),
Radius.circular(radius ?? 16.0.s),
),
color: color,
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'package:email_validator/email_validator.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:ice/app/extensions/build_context.dart';
import 'package:ice/app/extensions/num.dart';
import 'package:ice/app/extensions/theme_data.dart';
import 'package:ice/generated/assets.gen.dart';

Expand Down Expand Up @@ -43,19 +44,19 @@ class EmailInput extends HookWidget {
child: Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
const SizedBox(width: 20),
SizedBox(width: 20.0.s),
Image.asset(
Assets.images.fieldEmail.path,
color: context.theme.appColors.primaryText,
),
const SizedBox(width: 6),
SizedBox(width: 6.0.s),
VerticalDivider(
color: context.theme.appColors.strokeElements,
thickness: 1,
indent: 14,
endIndent: 14,
indent: 14.0.s,
endIndent: 14.0.s,
),
const SizedBox(width: 8),
SizedBox(width: 8.0.s),
],
),
),
Expand All @@ -66,22 +67,22 @@ class EmailInput extends HookWidget {
// or extend the InputBorder class to create your own
// the default is UnderlineInputBorder
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderRadius: BorderRadius.circular(16.0.s),
),
// you can also define different border styles for different states
// e.g. when the field is enabled / focused / has error
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderRadius: BorderRadius.circular(16.0.s),
borderSide:
BorderSide(color: context.theme.appColors.strokeElements),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderRadius: BorderRadius.circular(16.0.s),
borderSide:
BorderSide(color: context.theme.appColors.primaryAccent),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderRadius: BorderRadius.circular(16.0.s),
borderSide: const BorderSide(color: Colors.red),
),
),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:ice/app/services/keyboard_service.dart';
import 'package:ice/app/components/inputs/keyboard_service.dart';

class InputFieldController {
InputFieldController({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'package:flutter/foundation.dart';
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';

//TODO::reconsider during input refactoring (to riverpod?)
class KeyboardService {
final KeyboardVisibilityController keyboardVisibilityController =
KeyboardVisibilityController();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:ice/app/components/inputs/borders.dart';
import 'package:ice/app/components/inputs/decorators.dart';
import 'package:ice/app/components/inputs/input_field_controller.dart';
import 'package:ice/app/extensions/build_context.dart';
import 'package:ice/app/extensions/num.dart';
import 'package:ice/app/extensions/string.dart';
import 'package:ice/app/extensions/theme_data.dart';
import 'package:ice/app/shared/widgets/decorators.dart';
import 'package:ice/app/shared/widgets/inputs/input_field_controller.dart';
import 'package:ice/app/utils/extensions.dart';
import 'package:ice/app/values/borders.dart';
import 'package:ice/app/values/constants.dart';
import 'package:ice/generated/assets.gen.dart';

const Color _kBackgroundColor = Color(0xFFFFFFFF);
ice-hades marked this conversation as resolved.
Show resolved Hide resolved
double defaultTextFieldMargin = 44.0.w;
double defaultTextFieldMargin = 44.0.s;
ice-hades marked this conversation as resolved.
Show resolved Hide resolved
double textInputLeadingPadding = 16.0.s;
double textInputTrailingPadding = 12.0.s;
double defaultTextInputHeight = 58.0.s;

class InputField extends StatefulWidget {
InputField({
Expand Down Expand Up @@ -179,7 +181,7 @@ class InputFormField extends FormField<String> {
final Widget field = GestureDetector(
onTap: onTap ?? () => controller.focusNode.requestFocus(),
child: RoundedContainer(
height: kDefaultTextInputHeight,
height: defaultTextInputHeight,
border: _buildBorder(
controller,
error.isEmpty,
Expand All @@ -190,20 +192,20 @@ class InputFormField extends FormField<String> {
children: <Widget>[
if (leadingIcon != null)
Padding(
padding: const EdgeInsets.symmetric(
horizontal: kTextInputLeadingPadding,
padding: EdgeInsets.symmetric(
horizontal: textInputLeadingPadding,
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
leadingIcon,
if (showLeadingSeparator != null && showLeadingSeparator)
Container(
width: 1,
height: 26,
width: 1.0.s,
height: 26.0.s,
color: context.theme.appColors.strokeElements,
margin: const EdgeInsets.only(
left: kTextInputLeadingPadding,
margin: EdgeInsets.only(
left: textInputLeadingPadding,
),
),
],
Expand All @@ -213,7 +215,7 @@ class InputFormField extends FormField<String> {
child: Padding(
padding: EdgeInsets.only(top: 19.5.s),
child: SizedBox(
height: 34,
height: 34.0.s,
child: TextFormField(
scrollPadding: EdgeInsets.only(
bottom: controller.scrollPadding.zeroOrValue +
Expand Down Expand Up @@ -261,19 +263,19 @@ class InputFormField extends FormField<String> {
),
if (suffix != null)
Padding(
padding: const EdgeInsets.symmetric(
horizontal: kTextInputTrailingPadding,
padding: EdgeInsets.symmetric(
horizontal: textInputTrailingPadding,
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
if (showTrailingSeparator != null && showTrailingSeparator)
Container(
width: 1,
height: 26,
width: 1.0.s,
height: 26.0.s,
color: context.theme.appColors.strokeElements,
margin: const EdgeInsets.only(
right: kTextInputTrailingPadding,
margin: EdgeInsets.only(
right: textInputTrailingPadding,
),
),
suffix,
Expand Down
Loading
Loading