Merge pull request 'sync main' (#1) from eatvio/eatvio_app:main into main

Reviewed-on: apoloz/eatvio_app#1
This commit is contained in:
apoloz
2024-06-21 10:45:59 +00:00
333 changed files with 22713 additions and 4503 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

2
.env Normal file
View File

@@ -0,0 +1,2 @@
SERVER_ROOT='https://mobile-stage.eatvio.ru/api'
STORAGE_URL='https://mobile-stage.eatvio.ru/storage/'

View File

@@ -1,9 +1,9 @@
name: Android Release
on: [push, pull_request]
on: [ push, pull_request ]
env:
flutter_version: "3.19.0"
flutter_version: "3.22.0"
java_version: "12.x"
flutter_channel: "stable"
@@ -13,22 +13,37 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: ${{ env.java_version }}
cache: 'gradle'
- name: Install Android SDK
run: |
apt-get update
apt-get install -y openjdk-11-jdk wget
wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip -O commandlinetools.zip
unzip commandlinetools.zip
mkdir -p $HOME/Android/Sdk/cmdline-tools/latest
mv cmdline-tools/* $HOME/Android/Sdk/cmdline-tools/latest/
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
export PATH=$PATH:$HOME/Android/Sdk/cmdline-tools/latest/bin
sdkmanager "platform-tools" "platforms;android-30" "build-tools;30.0.3"
- name: Set up Android environment variables
run: |
echo "ANDROID_SDK_ROOT=$HOME/Android/Sdk" >> $GITHUB_ENV
echo "PATH=$PATH:$HOME/Android/Sdk/platform-tools:$HOME/Android/Sdk/build-tools/30.0.3" >> $GITHUB_ENV
echo "ANDROID_HOME=$HOME/Android/Sdk" >> $GITHUB_ENV
- uses: actions/cache@v2
with:
path: ${{ runner.tool_cache }}/flutter
key: flutter-${{ env.flutter_version }}-${{ env.flutter_channel }}
- name: Install jq
run: |
apt update
apt-get install -y jq
- uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: "12.x"
cache: "gradle"
- id: flutter-action
uses: actions/flutter-action@v2
with:
@@ -66,9 +81,12 @@ jobs:
touch .env
flutter test
# - name: Build apk
# run: flutter build apk
- name: Build apk
run: flutter build apk
# Runs a set of commands using the runners shell
# - name: Start release build
# run: flutter build appbundle
- name: Rename and move apk
run: |
TIMESTAMP=$(date +'%Y-%m-%d-%H-%M')
APK_NAME="eatvio_app_${TIMESTAMP}.apk"
mv build/app/outputs/flutter-apk/app-release.apk $APK_NAME
echo "APK build finished $APK_NAME"

View File

@@ -1,9 +1,9 @@
name: Eatvio App Android Test
on: [pull_request]
on: [ pull_request ]
env:
flutter_version: "3.19.0"
flutter_version: "3.22.0"
java_version: "12.x"
flutter_channel: "stable"
@@ -13,6 +13,38 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: ${{ env.java_version }}
cache: "gradle"
- name: Install Android SDK
run: |
apt-get update
apt-get install -y openjdk-11-jdk wget
wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip -O commandlinetools.zip
unzip commandlinetools.zip
mkdir -p $HOME/Android/Sdk/cmdline-tools/latest
mv cmdline-tools/* $HOME/Android/Sdk/cmdline-tools/latest/
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
export PATH=$PATH:$HOME/Android/Sdk/cmdline-tools/latest/bin
yes | sdkmanager --licenses 2>/dev/null || true
- name: Set up Android environment variables
run: |
echo "ANDROID_SDK_ROOT=$HOME/Android/Sdk" >> $GITHUB_ENV
echo "PATH=$PATH:$HOME/Android/Sdk/cmdline-tools/latest/bin:$HOME/Android/Sdk/platform-tools:$HOME/Android/Sdk/build-tools/30.0.3" >> $GITHUB_ENV
echo "ANDROID_HOME=$HOME/Android/Sdk" >> $GITHUB_ENV
- name: Debug Environment Variables
run: |
echo "ANDROID_SDK_ROOT: $ANDROID_SDK_ROOT"
echo "ANDROID_HOME: $ANDROID_HOME"
echo "PATH: $PATH"
- uses: actions/cache@v2
with:
path: ${{ runner.tool_cache }}/flutter
@@ -20,15 +52,8 @@ jobs:
- name: Install jq
run: |
apt update
apt-get install -y jq
- uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: "12.x"
cache: "gradle"
- id: flutter-action
uses: actions/flutter-action@v2
with:
@@ -36,7 +61,7 @@ jobs:
flutter-version: ${{ env.flutter_version }}
cache: true
- name: show cache keys
- name: Show cache keys
run: |
echo CACHE-PATH=${{ steps.flutter-action.outputs.CACHE-PATH }}
echo CACHE-KEY=${{ steps.flutter-action.outputs.CACHE-KEY }}
@@ -47,10 +72,11 @@ jobs:
echo PUB-CACHE-KEY=${{ steps.flutter-action.outputs.PUB-CACHE-KEY }}
shell: bash
- name: fix dir permissions
- name: Fix dir permissions
run: |
git config --global --add safe.directory /opt/hostedtoolcache/flutter/${{ env.flutter_channel }}-${{ env.flutter_version }}-${{ steps.flutter-action.outputs.ARCHITECTURE }}
flutter --version
flutter config --android-sdk="$ANDROID_HOME"
flutter doctor -v
- name: Get dependencies
run: flutter pub get
@@ -65,3 +91,21 @@ jobs:
run: |
touch .env
flutter test
- name: Build apk
run: |
flutter build apk
- name: Rename and move apk
run: |
TIMESTAMP=$(date +'%Y-%m-%d-%H-%M')
APK_NAME="eatvio_app_${TIMESTAMP}.apk"
mv build/app/outputs/flutter-apk/app-release.apk $APK_NAME
echo "APK build finished $APK_NAME"
echo "APK_NAME=$APK_NAME" >> $GITHUB_ENV
- name: Upload APK artifact
uses: actions/upload-artifact@v3
with:
name: EatvioApp-APK
path: ${{ env.APK_NAME }}

45
.metadata Normal file
View File

@@ -0,0 +1,45 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.
version:
revision: "ba393198430278b6595976de84fe170f553cc728"
channel: "stable"
project_type: app
# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
- platform: android
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
- platform: ios
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
- platform: linux
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
- platform: macos
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
- platform: web
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
- platform: windows
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
# User provided section
# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'

View File

@@ -1,4 +1,6 @@
analyzer:
errors:
invalid_annotation_target: ignore
plugins:
- dart_code_metrics

View File

@@ -1,67 +1,59 @@
plugins{
id 'com.android.application'
id 'kotlin-android'
plugins {
id "com.android.application"
id "kotlin-android"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
def localPropertiesFile = rootProject.file("local.properties")
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localPropertiesFile.withReader("UTF-8") { reader ->
localProperties.load(reader)
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
def flutterVersionCode = localProperties.getProperty("flutter.versionCode")
if (flutterVersionCode == null) {
flutterVersionCode = '1'
flutterVersionCode = "1"
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
def flutterVersionName = localProperties.getProperty("flutter.versionName")
if (flutterVersionName == null) {
flutterVersionName = '1.0'
flutterVersionName = "1.0"
}
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion flutter.compileSdkVersion
namespace = "com.eatvioapp.app"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
lintOptions {
disable 'InvalidPackage'
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.eatvioapp.app"
minSdkVersion 23
targetSdkVersion flutter.targetSdkVersion
multiDexEnabled true
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
applicationId = "com.eatvioapp.app"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdk = 23
targetSdk = flutter.targetSdkVersion
versionCode = flutterVersionCode.toInteger()
versionName = flutterVersionName
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
signingConfig = signingConfigs.debug
}
}
}
flutter {
source '../..'
source = "../.."
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "androidx.multidex:multidex:2.0.1"
}

View File

@@ -0,0 +1,5 @@
package com.eatvioapp.eatvio_app
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity()

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?android:colorBackground" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

View File

@@ -1,16 +1,3 @@
buildscript {
ext.kotlin_version = '1.7.20'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android" name="Android">
<configuration>
<option name="ALLOW_USER_CONFIGURATION" value="false" />
<option name="GEN_FOLDER_RELATIVE_PATH_APT" value="/gen" />
<option name="GEN_FOLDER_RELATIVE_PATH_AIDL" value="/gen" />
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/app/src/main/AndroidManifest.xml" />
<option name="RES_FOLDER_RELATIVE_PATH" value="/app/src/main/res" />
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/app/src/main/assets" />
<option name="LIBS_FOLDER_RELATIVE_PATH" value="/app/src/main/libs" />
<option name="PROGUARD_LOGS_FOLDER_RELATIVE_PATH" value="/app/src/main/proguard_logs" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/app/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/app/src/main/kotlin" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
</content>
<orderEntry type="jdk" jdkName="Android API 29 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Flutter for Android" level="project" />
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
</component>
</module>

View File

@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip

View File

@@ -1,11 +1,25 @@
include ':app'
pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}()
def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
def properties = new Properties()
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
assert localPropertiesFile.exists()
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.3.0" apply false
id "org.jetbrains.kotlin.android" version "1.7.10" apply false
}
include ":app"

BIN
assets/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -0,0 +1,3 @@
<svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M22.835 17.4827L17.3021 23.0156C14.6506 25.6671 10.3517 25.6671 7.70014 23.0156C5.04863 20.3641 5.04863 16.0651 7.70014 13.4136L15.1478 5.96595C16.9168 4.19693 19.785 4.19693 21.554 5.96595C23.323 7.73497 23.323 10.6031 21.554 12.3721L13.8717 20.0544C13.0406 20.8856 11.693 20.8856 10.8618 20.0544C10.0307 19.2233 10.0307 17.8757 10.8618 17.0446L16.6293 11.2771C16.9222 10.9842 16.9222 10.5093 16.6293 10.2164C16.3364 9.92353 15.8616 9.92353 15.5687 10.2164L9.80119 15.9839C8.38425 17.4009 8.38425 19.6982 9.80119 21.1151C11.2181 22.532 13.5154 22.532 14.9324 21.1151L22.6147 13.4328C24.9695 11.078 24.9695 7.2601 22.6147 4.90529C20.2598 2.55048 16.442 2.55048 14.0871 4.90529L6.63948 12.3529C3.40218 15.5902 3.40218 20.8389 6.63948 24.0762C9.87678 27.3135 15.1255 27.3135 18.3628 24.0762L23.8956 18.5434C24.1885 18.2505 24.1885 17.7756 23.8956 17.4827C23.6027 17.1898 23.1279 17.1898 22.835 17.4827Z" fill="#858E99"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,4 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18 27C22.4183 27 26 23.4183 26 19C26 14.5817 22.4183 11 18 11C13.5817 11 10 14.5817 10 19C10 23.4183 13.5817 27 18 27Z" stroke="#7B8794" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M28.0004 28.9999L23.6504 24.6499" stroke="#7B8794" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 442 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -0,0 +1,3 @@
<svg width="19" height="25" viewBox="0 0 19 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.5 0C12.2614 0 14.5 2.23858 14.5 5V12C14.5 14.7614 12.2614 17 9.5 17C6.73858 17 4.5 14.7614 4.5 12V5C4.5 2.23858 6.73858 0 9.5 0ZM18 11.25C18.4142 11.25 18.75 11.5858 18.75 12C18.75 16.6029 15.0002 20.3603 10.2509 20.7216L10.25 24C10.25 24.4142 9.91421 24.75 9.5 24.75C9.1203 24.75 8.80651 24.4678 8.75685 24.1018L8.75 24L8.75008 20.7216C4.00034 20.3609 0.25 16.6032 0.25 12C0.25 11.5858 0.585786 11.25 1 11.25C1.41421 11.25 1.75 11.5858 1.75 12C1.75 15.9936 5.20997 19.25 9.5 19.25C13.79 19.25 17.25 15.9936 17.25 12C17.25 11.5858 17.5858 11.25 18 11.25ZM6 5C6 3.067 7.567 1.5 9.5 1.5C11.433 1.5 13 3.067 13 5V12C13 13.933 11.433 15.5 9.5 15.5C7.567 15.5 6 13.933 6 12V5Z" fill="#858E99"/>
</svg>

After

Width:  |  Height:  |  Size: 845 B

View File

@@ -0,0 +1,3 @@
<svg width="20" height="26" viewBox="0 0 20 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.35574 0.0773487C8.44252 0.298117 7.72096 0.966084 7.40528 1.88312C7.30944 2.1605 7.29253 2.35863 7.29253 3.16811V4.11912L7.14033 4.18138C7.05577 4.20969 6.78519 4.33988 6.53715 4.47008C4.44576 5.52864 2.90681 7.63443 2.53475 9.94968C2.48966 10.244 2.33182 11.7328 2.17961 13.2499L1.90903 16.0123L1.59898 16.1878C0.90561 16.5784 0.268609 17.4445 0.0713075 18.271C-0.0357989 18.7125 -0.0188873 19.5276 0.0994934 19.9409C0.42645 21.0504 1.22129 21.8769 2.3149 22.2448C2.67568 22.3637 2.80534 22.3693 4.68816 22.392L6.67244 22.409V22.7429C6.67244 23.5581 7.02195 24.3959 7.61949 25.0016C8.04228 25.4318 8.43688 25.6752 9.01187 25.862C9.56431 26.0488 10.4832 26.0432 11.0131 25.862C12.3942 25.3808 13.3243 24.1242 13.3243 22.7429V22.4033H15.1282C17.2252 22.4033 17.5409 22.3637 18.2512 21.9901C19.0404 21.5825 19.6323 20.8409 19.8973 19.9409C20.0495 19.4088 20.0326 18.588 19.8465 18.0162C19.5872 17.2294 19.0517 16.5558 18.3696 16.1708L18.0877 16.0123L17.8171 13.2499C17.6649 11.7328 17.5071 10.244 17.4564 9.94968C17.2703 8.80621 16.7517 7.58915 16.0527 6.65513C15.286 5.62487 14.0571 4.66255 12.941 4.21535L12.7042 4.11912V3.19075C12.7042 2.42655 12.6817 2.20012 12.5915 1.90577C12.1743 0.54719 10.7425 -0.262297 9.35574 0.0773487ZM10.2971 1.93407C10.7256 2.11521 10.8947 2.48882 10.9003 3.2417V3.63795H9.99838H9.09643V3.2417C9.10207 2.50014 9.27118 2.12087 9.68833 1.93407C9.90818 1.83784 10.0717 1.83784 10.2971 1.93407ZM10.844 5.5626C12.7324 5.8513 14.3728 7.07968 15.162 8.78922C15.5566 9.64966 15.6074 9.94402 15.9456 13.3065C16.1147 15.0274 16.2726 16.5048 16.2895 16.601C16.3797 17.0426 16.701 17.4219 17.1971 17.6709C17.7946 17.9709 18.1103 18.4408 18.1159 19.0352C18.1159 19.4767 17.9355 19.873 17.6029 20.156C17.1407 20.5579 17.5466 20.5353 9.99838 20.5353C2.24162 20.5353 2.7997 20.5692 2.29236 20.0598C1.80756 19.5729 1.71173 18.9955 2.02741 18.3785C2.17961 18.0728 2.4051 17.869 2.80534 17.6653C3.29577 17.4219 3.61709 17.0426 3.70729 16.601C3.7242 16.5048 3.88204 15.0274 4.05115 13.3065C4.38939 9.94402 4.44012 9.64966 4.83472 8.78922C5.61265 7.10232 7.27562 5.84564 9.12461 5.55694C9.73907 5.46071 10.2126 5.46071 10.844 5.5626ZM11.464 22.6467C11.464 23.2071 11.154 23.7166 10.6523 23.9713C9.69961 24.4751 8.53271 23.7449 8.53271 22.6467V22.4033H9.99838H11.464V22.6467Z" fill="#7B8794"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1016 B

After

Width:  |  Height:  |  Size: 1016 B

View File

@@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.85135 0.0804901C1.70635 0.166418 1.60445 0.349989 1.33405 1.02569C0.656067 2.7208 0.185793 4.6776 0.0329544 6.44302C-0.0336677 7.21636 0.00552179 8.94662 0.107414 9.59108C0.275929 10.6495 0.53458 11.5635 0.918637 12.4345C2.14919 15.2232 4.88853 17.7346 8.59978 19.4766C9.3914 19.8477 9.79897 20 10.0067 20C10.234 20 10.8453 19.7617 11.7506 19.3165C15.3012 17.5745 17.8838 15.1529 19.1026 12.4228C19.4788 11.5752 19.7414 10.6456 19.9177 9.53249C19.9882 9.07552 20 8.83726 20 7.7163C20 6.60706 19.9882 6.34147 19.9177 5.80247C19.7335 4.47059 19.4631 3.28714 19.0712 2.10369C18.84 1.40846 18.499 0.537468 18.3658 0.30312C18.1777 -0.0327778 17.8563 -0.0835533 17.3155 0.135172C15.4854 0.873365 13.6866 1.93964 12.1739 3.19731C11.492 3.76365 10.6847 4.58777 10.1242 5.29081L10.0067 5.43923L9.71276 5.07599C8.16869 3.16606 5.54692 1.2991 2.84676 0.193758C2.31378 -0.0249653 2.06689 -0.0523071 1.85135 0.0804901ZM3.58352 1.88106C7.14585 3.67772 9.57168 6.15399 10.4809 8.91538C10.8297 9.98556 10.9864 11.0284 10.9825 12.3251C10.9825 13.5633 10.8179 14.8092 10.4848 16.1489C10.332 16.7504 10.0302 17.7346 9.99492 17.7346C9.98317 17.7346 8.80748 14.9342 7.38882 11.5127C5.97016 8.09516 4.77488 5.24003 4.73569 5.17754C4.63772 5.00959 4.45353 4.91585 4.23015 4.91585C3.87744 4.91585 3.63055 5.15801 3.63447 5.50172C3.63447 5.65405 4.06947 6.72814 6.17003 11.7783C7.56517 15.1295 8.74086 17.9534 8.78005 18.0588L8.85451 18.2424L8.45086 18.0432C7.47896 17.555 6.35422 16.8402 5.48421 16.1489C4.85326 15.649 3.77555 14.5866 3.34055 14.0398C2.08648 12.454 1.43986 10.8409 1.24783 8.81773C1.18904 8.185 1.2204 6.59925 1.30661 5.94698C1.4908 4.55262 1.89837 2.94343 2.38432 1.69358L2.50973 1.37331L2.71352 1.45923C2.82717 1.5061 3.21906 1.69358 3.58352 1.88106ZM17.8524 2.32632C18.9967 5.66576 19.1182 8.90757 18.2012 11.3916C17.8759 12.2665 17.3312 13.2117 16.6571 14.0632C16.2456 14.5827 15.1954 15.6216 14.6428 16.063C14.004 16.5707 13.3691 17.0121 12.6951 17.4144C11.9701 17.8479 11.1471 18.2736 11.1745 18.1994C11.1863 18.1682 12.4991 15.0162 14.0863 11.1925C17.2097 3.68944 17.0765 4.03705 16.9001 3.74802C16.6885 3.41213 16.1947 3.37697 15.9243 3.68163C15.8773 3.72849 15.0308 5.72045 14.0432 8.10688L12.2444 12.4423L12.1974 11.6885C12.1464 10.8136 12.0994 10.4386 11.9662 9.76684C11.7702 8.78258 11.4763 7.94284 11.0099 7.0367L10.7395 6.51332L11.0099 6.15399C12.3267 4.41982 14.49 2.76767 16.9275 1.63499L17.4958 1.37331L17.5663 1.53735C17.6055 1.62718 17.7348 1.98261 17.8524 2.32632Z" fill="#2F80ED"/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,4 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.69922 0.0718498C0.894531 0.306305 0.269531 0.947153 0.0625 1.7443C0.0078125 1.95531 0 2.84234 0 10.005C0 16.9214 0.0078125 18.0624 0.0585938 18.2461C0.277344 19.0706 0.929688 19.7232 1.74609 19.9264C2.04688 20.0045 2.16406 20.0045 7.14844 19.9967L12.2461 19.985L12.5039 19.899C13.1758 19.6685 13.7695 19.0745 13.9922 18.4063C14.0781 18.1562 14.082 18.0898 14.0938 16.3196L14.1003 15.2956C14.1032 14.8541 13.7461 14.4948 13.3047 14.4948C12.8615 14.4948 12.5015 14.8524 12.4984 15.2956L12.4922 16.2063L12.4805 17.9218L12.375 18.0624C12.3125 18.1367 12.207 18.2422 12.1406 18.293L12.0117 18.3829H7.04688H2.08594L1.94531 18.2891C1.76172 18.164 1.65234 17.9921 1.60156 17.7576C1.57422 17.6209 1.5625 15.1982 1.57031 9.86429C1.58203 2.42813 1.58594 2.16241 1.65625 2.02956C1.75781 1.83809 1.83203 1.75993 2.01172 1.66224L2.16797 1.58018H7.03125H11.8945L12.0742 1.67006C12.1836 1.72476 12.3008 1.82245 12.3672 1.92015L12.4805 2.08036L12.4922 3.77625L12.4984 4.67139C12.5014 5.11237 12.8598 5.46824 13.3008 5.46824C13.743 5.46824 14.1016 5.10972 14.1016 4.66746V3.73718C14.1016 1.81464 14.0977 1.77556 13.8398 1.24804C13.6563 0.872908 13.2539 0.46261 12.8711 0.263323C12.3281 -0.0180244 12.6875 -0.00239372 7.02734 0.00151253C2.29688 0.00151253 1.91797 0.00932884 1.69922 0.0718498Z" fill="#2F80ED"/>
<path d="M15.7422 6.85542C15.4293 7.16838 15.4293 7.67567 15.7422 7.98863L16.0547 8.30123L16.9336 9.18044H11.9023H7.67606C7.23365 9.18044 6.875 9.53909 6.875 9.9815C6.875 10.4239 7.23365 10.7826 7.67606 10.7826H11.9219H16.9727L16.0742 11.6813L15.7422 12.0135C15.4293 12.3264 15.4293 12.8337 15.7422 13.1467C16.055 13.4595 16.5622 13.4595 16.875 13.1467L18.1523 11.8689C18.1587 11.8625 18.1651 11.8561 18.1715 11.8497C19.1997 10.8207 19.1823 9.1592 18.1566 8.12768L16.9029 6.86682C16.5823 6.54447 16.0636 6.53392 15.7422 6.85542Z" fill="#2F80ED"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,7 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.20343 0.061348C1.644 0.21007 0.70593 0.868757 0.467242 1.35954C0.217366 1.87263 0.0332161 1.50954 0.0332161 9.58142C0.0332161 16.7721 -0.0414616 17.0806 0.0331284 17.3706C0.130095 17.7498 0.243422 18.4085 0.467192 18.6688C0.896085 19.167 2.04446 19.8182 2.63745 19.967C2.92835 20.0413 3.16171 19.967 10.0165 19.967C16.8714 19.967 17.1047 20.0413 17.3956 19.9669C17.556 19.9261 18.0698 19.6309 18.2637 19.5342C18.5658 19.3855 18.8111 19.4212 19.1319 19.1015C19.4526 18.7817 19.4168 18.5372 19.5659 18.236C19.9165 17.5296 20 17.8584 20 10.8796C20 4.06443 19.8345 4.47273 19.5659 3.95592C19.3795 3.60271 18.7363 3.27149 18.3969 3.1079C17.9307 2.88481 17.8673 2.87738 16.2562 2.87738H14.7905V2.60596C14.7905 1.66158 13.9986 0.306738 13.055 0.061348C12.738 -0.0204487 2.50925 -0.0204487 2.20343 0.061348ZM13.0078 1.8103C13.2465 1.92556 13.3844 2.07056 13.5001 2.31967L13.5784 2.48698L13.597 9.83012L13.6157 17.1733L13.7052 17.4335C13.7947 17.7012 13.9439 18.0098 14.0856 18.2255L14.1639 18.3482L8.67036 18.337L3.17307 18.3259L2.94184 18.2478C2.36377 18.047 1.92369 17.6008 1.7484 17.0245C1.685 16.8126 1.68127 16.4705 1.68127 9.66281C1.68127 3.89612 1.69246 2.49814 1.72976 2.38659C1.8491 2.05569 2.14746 1.79543 2.48685 1.7285C2.57635 1.70991 4.9334 1.69876 7.72307 1.69876L12.7952 1.70619L13.0078 1.8103ZM17.8297 3.95592C18.0796 4.07118 18.1481 4.1507 18.2637 4.38865V4.82138V10.8796C18.2637 16.5533 18.3271 16.7259 18.2637 16.9378C18.0251 17.7112 17.3713 18.3073 16.5844 18.3073C15.8049 18.3073 15.4864 17.6963 15.2253 16.9378V10.4469V4.45592C15.2253 4.17978 15.4492 3.95592 15.7253 3.95592H16.0934C17.4137 3.96708 17.6693 3.88156 17.8297 3.95592Z" fill="#7B8794"/>
<path d="M3.12399 2.9518C3.05686 2.9927 2.97108 3.07821 2.93006 3.14514C2.8592 3.26411 2.85547 3.33848 2.85547 5.25699C2.85547 7.1755 2.8592 7.24986 2.93006 7.36884C2.97108 7.43576 3.05686 7.52128 3.12399 7.56217C3.24334 7.63282 3.31793 7.63654 5.24235 7.63654C7.16677 7.63654 7.24136 7.63282 7.36071 7.56217C7.42784 7.52128 7.51362 7.43576 7.55464 7.36884C7.6255 7.24986 7.62923 7.1755 7.62923 5.25699C7.62923 3.33848 7.6255 3.26411 7.55464 3.14514C7.51362 3.07821 7.42784 2.9927 7.36071 2.9518C7.24136 2.88116 7.16677 2.87744 5.24235 2.87744C3.31793 2.87744 3.24334 2.88116 3.12399 2.9518ZM6.43579 5.25699V6.44676H5.24235H4.04891V5.25699V4.06721H5.24235H6.43579V5.25699Z" fill="#7B8794"/>
<path d="M3.22842 9.23893C2.99346 9.33188 2.85547 9.55497 2.85547 9.83382C2.85547 10.0755 2.95989 10.2502 3.15756 10.3506C3.29555 10.425 3.39625 10.425 7.63669 10.425H11.9741L12.1158 10.3395C12.3247 10.2131 12.403 10.0755 12.403 9.82638C12.403 9.59586 12.3209 9.43599 12.1307 9.2947C12.0263 9.21662 12.0226 9.21662 7.67398 9.20919C4.8321 9.20547 3.28809 9.21662 3.22842 9.23893Z" fill="#7B8794"/>
<path d="M3.22842 12.2134C2.99346 12.3064 2.85547 12.5295 2.85547 12.8083C2.85547 13.05 2.95989 13.2247 3.15756 13.3251C3.29555 13.3995 3.39625 13.3995 7.63669 13.3995H11.9741L12.1158 13.314C12.3247 13.1875 12.403 13.05 12.403 12.8009C12.403 12.5704 12.3209 12.4105 12.1307 12.2692C12.0263 12.1911 12.0226 12.1911 7.67398 12.1837C4.8321 12.18 3.28809 12.1911 3.22842 12.2134Z" fill="#7B8794"/>
<path d="M3.22842 15.1878C2.99346 15.2808 2.85547 15.5039 2.85547 15.7827C2.85547 16.0244 2.95989 16.1992 3.15756 16.2995C3.29555 16.3739 3.39625 16.3739 7.63669 16.3739H11.9741L12.1158 16.2884C12.3247 16.162 12.403 16.0244 12.403 15.7753C12.403 15.5448 12.3209 15.3849 12.1307 15.2436C12.0263 15.1655 12.0226 15.1655 7.67398 15.1581C4.8321 15.1544 3.28809 15.1655 3.22842 15.1878Z" fill="#7B8794"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,4 @@
<svg width="15" height="20" viewBox="0 0 15 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.15062 0.0898266C1.85736 0.285101 1.87691 -0.0312443 1.87691 4.60066V8.74439L1.13787 8.76001C0.316728 8.77172 0.277626 8.78344 0.0899351 9.06464C0 9.19352 0 9.20523 0 10.619C0 11.9898 0.00391022 12.0484 0.0821147 12.189C0.234613 12.4546 0.316728 12.4819 1.14569 12.4937L1.87691 12.5093V13.1459V13.7864L1.12614 13.7981C0.402753 13.8098 0.367561 13.8137 0.238524 13.9035C0.00391022 14.0715 0 14.1066 0 15.6766C0 17.0904 0 17.0982 0.0899351 17.231C0.250254 17.4731 0.35974 17.5005 1.16525 17.5005H1.87691V18.5237C1.87691 19.6719 1.88864 19.7422 2.14671 19.9102C2.27966 20 2.28748 20 3.73035 20C5.11066 20 5.18886 19.9961 5.31008 19.9219C5.38047 19.8789 5.4704 19.7891 5.51341 19.7188C5.58771 19.5977 5.59162 19.5196 5.59162 18.5433V17.5005H7.57019C9.50575 17.5005 9.55267 17.5005 9.69735 17.4185C9.99453 17.2505 9.99062 17.2701 9.99062 15.6376C9.99062 14.2316 9.98671 14.1847 9.9085 14.0793C9.86549 14.0207 9.77946 13.9348 9.72081 13.8918C9.61524 13.8137 9.5644 13.8098 7.60147 13.7981L5.59162 13.7864V13.1459V12.5015H7.22609C8.97005 12.5015 9.52139 12.4702 10.1197 12.3413C12.5596 11.8141 14.46 9.84573 14.9214 7.36575C15.0348 6.77211 15.0231 5.56141 14.9019 5.00293C14.6633 3.89377 14.1628 2.89006 13.4629 2.10896C12.544 1.08963 11.5078 0.472565 10.1275 0.128881L9.7169 0.027338L6.00219 0.0156212L2.28357 0L2.15062 0.0898266ZM9.63088 1.26928C11.4804 1.62859 12.9624 2.90568 13.545 4.65143C14.4287 7.29545 12.9624 10.1816 10.3034 11.0291C9.55267 11.2673 9.25549 11.2908 6.86244 11.2908C4.5515 11.2908 4.64143 11.279 4.46547 11.6071C4.37554 11.775 4.37554 11.7789 4.38727 13.1927C4.399 14.5479 4.40291 14.6104 4.48111 14.712C4.52413 14.7706 4.61015 14.8565 4.6688 14.8994C4.77438 14.9775 4.82521 14.9814 6.78814 14.9932L8.798 15.0049V15.6454V16.2859L6.78814 16.2976C4.82521 16.3093 4.77438 16.3132 4.6688 16.3913C4.61015 16.4343 4.52413 16.5202 4.48111 16.5788C4.40291 16.6803 4.399 16.7467 4.38727 17.7583L4.37554 18.8284H3.73426H3.09299L3.08125 17.7583C3.06952 16.7467 3.06561 16.6803 2.98741 16.5788C2.79581 16.321 2.76062 16.3093 1.9512 16.2976L1.21217 16.2859V15.6415V15.001H1.90428C2.52209 15.001 2.61203 14.9932 2.76062 14.919C2.88183 14.8604 2.94831 14.794 3.00696 14.6729C3.08516 14.5167 3.08908 14.4425 3.08908 13.1224C3.08908 11.8492 3.08516 11.7282 3.01478 11.6032C2.86619 11.3259 2.81927 11.3103 1.97075 11.2986L1.21217 11.2869V10.6229V9.9629H1.9512C2.65113 9.9629 2.69414 9.95899 2.81927 9.87307C3.10863 9.6817 3.08908 9.99805 3.08908 5.34271V1.17165L6.18988 1.18727C8.90749 1.19898 9.32979 1.2107 9.63088 1.26928Z" fill="#2F80ED"/>
<path d="M4.69172 2.57371C4.61352 2.61667 4.51967 2.71821 4.46884 2.81585L4.37891 2.98379V6.22924C4.37891 9.34582 4.38282 9.48252 4.45711 9.63874C4.50012 9.73637 4.58615 9.83792 4.66044 9.88478C4.78557 9.95899 4.85204 9.96289 6.9792 9.96289C8.30868 9.96289 9.27059 9.94727 9.42309 9.91993C10.2755 9.78714 11.1592 9.256 11.7106 8.5491C11.996 8.1898 12.2893 7.58054 12.4027 7.13141C12.5278 6.63151 12.5278 5.83088 12.4027 5.33879C12.0742 4.02264 11.0497 2.98379 9.71636 2.61276C9.41136 2.52684 9.34489 2.52294 7.11606 2.51513C4.93807 2.50341 4.82076 2.50341 4.69172 2.57371ZM9.36835 3.78441C9.8454 3.90939 10.1504 4.08904 10.5219 4.45615C10.7956 4.72563 10.8894 4.85061 11.0224 5.12009C11.2883 5.66295 11.3587 6.18628 11.2413 6.73696C11.081 7.48681 10.561 8.16246 9.87277 8.49833C9.36835 8.74828 9.32143 8.75219 7.36241 8.75219H5.59107V6.23315V3.71411H7.34285C8.91476 3.71411 9.12592 3.72192 9.36835 3.78441Z" fill="#2F80ED"/>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,4 @@
<svg width="44" height="40" viewBox="0 0 44 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M21.8819 0C33.9607 0 43.75 5.40314 43.75 17.7173C43.75 30.0175 33.9607 40 21.8819 40C9.78925 40 0 30.0175 0 17.7173C0 5.40314 9.78925 0 21.8819 0Z" fill="#43A6F2"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M21.8083 25.9799C18.9151 25.9799 16.0764 25.4103 13.4289 24.311C10.7813 23.1984 8.39309 21.5692 6.41425 19.5295C5.49989 18.6023 5.55448 17.1189 6.50978 16.2447C7.47873 15.3573 8.99357 15.4103 9.90793 16.3374C11.4364 17.9136 13.2788 19.1719 15.3259 20.0196C17.3729 20.8805 19.5701 21.3176 21.8083 21.3176C24.0327 21.3176 26.2299 20.8805 28.277 20.0196C30.3241 19.1719 32.1665 17.9136 33.6949 16.3374C34.6093 15.4103 36.1241 15.3573 37.0931 16.2447C38.0484 17.1189 38.103 18.6023 37.1886 19.5295C35.2098 21.5692 32.8215 23.1984 30.174 24.311C27.5264 25.4103 24.6878 25.9799 21.8083 25.9799Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 971 B

View File

@@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.0529 10V17C18.0529 17.5304 17.8533 18.0391 17.498 18.4142C17.1426 18.7893 16.6607 19 16.1582 19H2.89477C2.39228 19 1.91034 18.7893 1.55498 18.4142C1.19961 18.0391 1 17.5304 1 17V3C1 2.4696 1.19961 1.9609 1.55498 1.5858C1.91034 1.2107 2.39228 1 2.89477 1H13.316" stroke="#2F80ED" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 461 B

View File

@@ -0,0 +1,3 @@
<svg width="17" height="20" viewBox="0 0 17 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.173112 0.128904C0.0782671 0.222652 0.0347965 0.308588 0.0150371 0.433586C0.0031815 0.527336 -0.00472224 4.57805 0.0031815 9.43344C0.0150371 17.8942 0.018989 18.2692 0.0861708 18.4763C0.339091 19.2106 0.868641 19.734 1.57207 19.9372C1.76572 19.9919 2.48496 19.9997 8.65778 19.9997C16.2375 19.9997 15.6921 20.0192 15.8265 19.7575C15.9529 19.5192 15.8739 19.1677 15.6724 19.0544C15.6052 19.0153 14.2023 18.9997 8.74868 18.9841L1.91194 18.9645L1.68668 18.8552C0.852834 18.4528 0.852834 17.3278 1.68668 16.9255L1.91194 16.8161L9.30589 16.7966C16.6327 16.7771 16.7038 16.7771 16.7907 16.6989C16.9883 16.5232 16.9765 16.9099 16.9923 8.92564C17.0081 1.73435 17.0041 1.41795 16.937 1.19139C16.7315 0.542959 16.3402 0.167967 15.7316 0.0429688C15.5815 0.0117188 13.3249 0 7.91483 0H0.303524L0.173112 0.128904ZM15.6407 1.11326C15.7158 1.15623 15.8107 1.24217 15.8581 1.30076L15.9411 1.41013L15.9529 8.59752L15.9608 15.781H8.95022C4.50832 15.781 1.86847 15.7966 1.73805 15.8201C1.62345 15.8396 1.42586 15.9021 1.29544 15.9529L1.06228 16.0466V8.53111V1.01561L8.28631 1.02342C15.4273 1.03514 15.5064 1.03514 15.6407 1.11326Z" fill="#2F80ED"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1,6 @@
<svg width="19" height="20" viewBox="0 0 19 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.89072 0.0934658C1.8212 0.372349 0.891395 1.11764 0.409631 2.08892C-0.0191395 2.94481 0.000131078 2.68516 0.000131078 7.69063C0.000131078 12.7105 -0.0191395 12.4365 0.419266 13.3164C0.611971 13.7059 0.71796 13.8405 1.13228 14.254C1.54659 14.6675 1.68149 14.7733 2.07172 14.9656C2.79918 15.3263 3.10269 15.384 4.34564 15.384H5.39589V17.4371C5.39589 19.4037 5.40071 19.4999 5.49224 19.6538C5.54524 19.7403 5.65604 19.8509 5.74276 19.9038C5.95474 20.0288 6.37869 20.0336 6.57621 19.9086C6.65811 19.8605 7.88661 18.8219 9.30781 17.6006L11.8997 15.384H13.5522C15.4648 15.384 15.6382 15.3599 16.4283 14.9656C16.8185 14.7733 16.9534 14.6675 17.3677 14.254C17.782 13.8405 17.888 13.7059 18.0807 13.3164C18.5191 12.4365 18.4999 12.7105 18.4999 7.69063C18.4999 2.67073 18.5191 2.94481 18.0807 2.06488C17.888 1.67541 17.782 1.54077 17.3677 1.12726C16.9534 0.713739 16.8185 0.607956 16.4283 0.415623C15.5274 -0.0315514 16.0332 -0.00270081 9.23073 0.00210762C3.48329 0.00210762 3.23759 0.00691605 2.89072 0.0934658ZM15.3395 1.6706C16.0862 1.94948 16.621 2.51206 16.8474 3.24292C16.9293 3.51219 16.9341 3.80069 16.9341 7.69063C16.9341 11.5806 16.9293 11.8691 16.8474 12.1383C16.621 12.8692 16.0766 13.4414 15.3395 13.7107C15.0697 13.8068 14.9445 13.8116 13.1523 13.8405C11.4854 13.8645 11.2301 13.879 11.1289 13.9511C11.0614 13.9944 10.0979 14.807 8.98503 15.759L6.96162 17.4948L6.93753 15.8936C6.91826 14.4752 6.90381 14.2829 6.82673 14.1675C6.63402 13.8741 6.61957 13.8741 4.98639 13.8405C3.66154 13.8164 3.4592 13.802 3.19423 13.7155C2.45713 13.4751 1.88383 12.8836 1.65258 12.1383C1.57068 11.8691 1.56586 11.5806 1.56586 7.69063C1.56586 3.80069 1.57068 3.51219 1.65258 3.24292C1.92719 2.34377 2.66429 1.71387 3.58927 1.58405C3.74826 1.56482 6.39314 1.55039 9.4668 1.5552L15.0553 1.56001L15.3395 1.6706Z" fill="#2F80ED"/>
<path d="M4.00856 6.25294C3.02577 6.63279 2.75598 8.03202 3.51717 8.79654C4.11455 9.38797 5.13589 9.38797 5.73328 8.79654C6.49929 8.02721 6.22468 6.62318 5.22743 6.25294C4.87092 6.1183 4.36025 6.1183 4.00856 6.25294Z" fill="#2F80ED"/>
<path d="M8.63357 6.25294C7.65077 6.6328 7.38098 8.03203 8.14217 8.79655C8.91299 9.56108 10.3197 9.287 10.6907 8.29168C10.9171 7.69544 10.7822 7.01266 10.3583 6.58472C9.92951 6.16158 9.22613 6.02695 8.63357 6.25294Z" fill="#2F80ED"/>
<path d="M13.2586 6.25294C12.2758 6.6328 12.006 8.03203 12.7672 8.79655C13.538 9.56108 14.9447 9.287 15.3157 8.29168C15.5421 7.69544 15.4072 7.01266 14.9833 6.58472C14.5545 6.16158 13.8511 6.02695 13.2586 6.25294Z" fill="#2F80ED"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,3 @@
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M27.9816 0.935472C27.9805 0.930804 27.9787 0.926137 27.9776 0.92147C27.9577 0.828707 27.9239 0.738861 27.8813 0.651932C27.8702 0.629762 27.8591 0.608176 27.8469 0.586006C27.7967 0.49791 27.7384 0.413315 27.6631 0.338054C27.5878 0.262794 27.5027 0.204452 27.4146 0.154278C27.3936 0.142027 27.3726 0.131525 27.3504 0.12044C27.2611 0.0766842 27.1695 0.0410959 27.0738 0.0212598C27.0709 0.0206764 27.0692 0.020093 27.0668 0.0195095C26.9671 -0.000326583 26.8656 -0.00324366 26.764 0.00317391C26.7419 0.00434074 26.7197 0.0066744 26.6975 0.00959148C26.5949 0.0218432 26.4928 0.0434296 26.3953 0.0831018L0.725638 10.5846C0.267657 10.7719 -0.0223005 11.2275 0.0016195 11.7211C0.0255395 12.2152 0.358086 12.6405 0.832403 12.7823L11.8986 16.1025L15.2183 27.1687C15.3606 27.6425 15.7859 27.975 16.2795 27.9989C16.2987 27.9995 16.3174 28.0001 16.3367 28.0001C16.8081 28.0001 17.2363 27.7154 17.4166 27.2749L27.918 1.60465C27.918 1.60407 27.918 1.60407 27.918 1.60348C27.9571 1.5078 27.9781 1.40804 27.9904 1.30711C27.9933 1.28202 27.9962 1.25752 27.9974 1.23243C28.0032 1.13325 28.0009 1.03349 27.9816 0.935472ZM4.66369 11.4947L21.9118 4.4383L12.5036 13.847L4.66369 11.4947ZM16.5053 23.3375L14.1535 15.4969L23.5611 6.08936L16.5053 23.3375Z" fill="#323F4B"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

104
bpc Normal file
View File

@@ -0,0 +1,104 @@
import 'bloc/blog_post_create_bloc.dart';
import 'models/blog_post_create_model.dart';
import 'package:eatvio_app/core/app_export.dart';
import 'package:flutter/material.dart';
import 'package:eatvio_app/widgets/custom_bottom_bar.dart';
class BlogPostCreateScreen extends StatelessWidget {
const BlogPostCreateScreen({Key? key}) : super(key: key);
static Widget builder(BuildContext context) {
final blog_postID = ModalRoute.of(context)!.settings.arguments;
return BlocProvider<BlogPostCreateBloc>(
create: (context) => BlogPostCreateBloc(BlogPostCreateState(
blog_postModelObj:
BlogPostCreateModel(blog_postID: blog_postID.toString())))
..add(BlogPostCreateInitialEvent()),
child: BlogPostCreateScreen());
}
Widget build(BuildContext context) {
return BlocBuilder<BlogPostCreateBloc, BlogPostCreateState>(
builder: (context, state) {
if (state is BlogPostCreateInitialState) {
// Это начальное состояние, данные ещё не загружены.
return Container(
color: Colors.white,
);
} else if (state is BlogPostCreateLoadedState) {
// Данные загружены, можно строить экран.
return _buildBlogPostCreate(context, state);
} else if (state is BlogPostCreateErrorState) {
// Произошла ошибка при загрузке данных.
return Center(child: Text(state.errorMessage));
} else {
// Другие состояния, если они есть.
return Container(); // Пустой контейнер для необработанных состояний.
}
},
);
}
_buildBlogPostCreate(BuildContext context, BlogPostCreateLoadedState state) {
mediaQueryData = MediaQuery.of(context);
return Scaffold(
resizeToAvoidBottomInset: false,
body: SafeArea(
child: Container(
width: double.maxFinite,
decoration: AppDecoration.fillGray,
child: ListView(children: [
Container(
margin: EdgeInsets.only(
left: 16.h,
right: 20.h,
bottom: 10.h,
),
padding: EdgeInsets.all(12.h),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: const BorderRadius.all(Radius.circular(12)),
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 2,
blurRadius: 5,
offset: Offset(0, 3),
),
],
),
child: Column(mainAxisSize: MainAxisSize.min, children: [
SizedBox(height: 16.0),
TextFormField(
controller: state.title,
decoration: InputDecoration(labelText: 'Заголовок'),
),
SizedBox(height: 16.0),
TextFormField(
controller: state.description,
decoration: InputDecoration(labelText: 'Описание'),
),
SizedBox(height: 16.0),
TextFormField(
controller: state.youtube_url,
decoration: InputDecoration(labelText: 'Ссылка'),
),
SizedBox(height: 16.0),
// Здесь нужно добавить виджет для загрузки картинки
ElevatedButton(
onPressed: () => context
.read<BlogPostCreateBloc>()
.add(CreateBlogPost()),
child: Text('Создать'),
)
]),
)
]),
),
),
bottomNavigationBar: _buildBottomBar(context));
}
}
_buildBottomBar(BuildContext context) {
return CustomBottomBar(onChanged: (BottomBarEnum type) {});
}

View File

@@ -1 +1,2 @@
extensions:
- provider: true

17
eatvio_app.iml Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="0.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/lib" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/.idea" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Dart SDK" level="project" />
<orderEntry type="library" name="Flutter Plugins" level="project" />
<orderEntry type="library" name="Dart Packages" level="project" />
</component>
</module>

313
fc Normal file
View File

@@ -0,0 +1,313 @@
import 'bloc/feed_bloc.dart';
import 'models/feed_model.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:eatvio_app/presentation/feed/feed_screen/widgets/feed_search_view.dart';
import 'package:eatvio_app/presentation/feed/feed_screen/widgets/feed_scroll_item.dart';
import 'package:eatvio_app/widgets/custom_bottom_bar.dart';
import 'package:eatvio_app/widgets/custom_outlined_button.dart';
import 'package:eatvio_app/core/app_export.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
class FeedScreen extends StatelessWidget {
static Widget builder(BuildContext context) {
return BlocProvider<FeedBloc>(
create: (context) => FeedBloc(FeedState(myProfileModelObj: FeedModel()))
..add(FeedInitialEvent()),
child: FeedScreen());
}
Widget build(BuildContext context) {
return BlocBuilder<FeedBloc, FeedState>(
builder: (context, state) {
if (state is FeedInitialState) {
// Это начальное состояние, данные ещё не загружены.
return CircularProgressIndicator(
color: Colors.white,
backgroundColor: Colors.white,
);
} else if (state is FeedLoadedState) {
// Данные загружены, можно строить экран.
return _buildFeedScreen(context, state);
} else {
// Другие состояния, если они есть.
return Container(); // Пустой контейнер для необработанных состояний.
}
},
);
}
_buildFeedScreen(BuildContext context, FeedLoadedState state) {
mediaQueryData = MediaQuery.of(context);
return Scaffold(
backgroundColor: Colors.grey[200],
resizeToAvoidBottomInset: true,
body: SafeArea(
child: SingleChildScrollView(
child: Container(
width: double.maxFinite,
decoration: BoxDecoration(color: Colors.grey[200]),
child: Padding(
padding: EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
_buildSearch(),
SizedBox(height: 20),
_buildMenu(context, state),
SizedBox(height: 20),
_buildBlogPostList(context, state)
],
),
),
),
),
),
bottomNavigationBar: _buildBottomBar(context),
);
}
_buildSearch() {
return Container(
margin: EdgeInsets.only(bottom: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: const BorderRadius.all(Radius.circular(12)),
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 2,
blurRadius: 5,
offset: Offset(0, 3),
),
],
),
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Column(
children: [
CustomSearchView(
hintText: "Поиск записей",
),
SizedBox(height: 10),
Row(
children: [
Flexible(
flex: 5,
child: CustomOutlinedButton(
text: "Найти запись",
buttonStyle: CustomButtonStyles.outlinePrimaryTL15,
),
),
SizedBox(width: 8), // Add some spacing between the buttons
Flexible(
flex: 1,
child: CustomOutlinedButton(
text: "+",
buttonStyle: CustomButtonStyles.outlinePrimaryTL15,
),
),
],
)
],
),
),
);
}
_buildBlogPostList(BuildContext context, FeedLoadedState state) {
List<Widget> postWidgets = [];
if (state.posts != null) {
for (var post in state.posts!) {
postWidgets.add(_buildFeedEntry(post, context));
}
}
return Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: postWidgets,
);
}
_buildFeedEntry(post, BuildContext context) {
return Container(
margin: EdgeInsets.only(bottom: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: const BorderRadius.all(Radius.circular(12)),
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 2,
blurRadius: 5,
offset: Offset(0, 3),
),
],
),
child: Column(children: [
ListTile(
leading: CachedNetworkImage(
imageUrl: dotenv.env['STORAGE_URL']! +
(post["author"]['profile_photo_path'] ?? ''),
imageBuilder: (context, imageProvider) => CircleAvatar(
backgroundImage: imageProvider,
radius: 25,
),
placeholder: (context, url) => CircularProgressIndicator(),
errorWidget: (context, url, error) => CircleAvatar(
child: Icon(Icons.person),
backgroundColor: Colors.white,
radius: 25,
),
),
title: Text(
post?['author']['name'] ?? '',
style: CustomTextStyles.titleMediumSemiBold,
),
subtitle: Text(
DateFormat('dd.MM.yyyy')
.format(DateTime.parse(post?['post']['updated_at'])),
style: theme.textTheme.bodyMedium,
),
onTap: () => Navigator.pushNamed(
context,
AppRoutes.blogPostScreen,
arguments: post?['post']['id'].toString(),
),
trailing: PopupMenuButton<String>(
onSelected: (value) => print("tap"),
itemBuilder: (BuildContext context) => <PopupMenuEntry<String>>[
PopupMenuItem<String>(
value: 'edit',
child: Text('Редактировать'),
),
PopupMenuItem<String>(
value: 'delete',
child: Text('Удалить'),
),
],
),
),
Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Spacer(),
Align(
alignment: Alignment.center,
child: Text(
post?['post']['title'],
style: CustomTextStyles.titleMediumBlack,
),
),
Spacer(),
],
),
SizedBox(height: 8.0),
Text(
post?['post']['description'],
style: CustomTextStyles.bodyMediumBluegray800,
),
SizedBox(height: 16.0),
CachedNetworkImage(
imageUrl: dotenv.env['STORAGE_URL']! +
(post?['post']['image'] ?? ''),
imageBuilder: (context, imageProvider) => Stack(
children: [
ClipRRect(
borderRadius:
const BorderRadius.all(Radius.circular(8.0)),
child: Image(
image: imageProvider,
),
),
],
),
placeholder: (context, url) => CircularProgressIndicator(),
),
SizedBox(height: 16.0),
Row(children: [
Padding(
padding: EdgeInsets.only(left: 4),
child: Row(children: [
Padding(
padding: EdgeInsets.only(right: 4),
child: Icon(Icons.comment_outlined),
),
Text(
"Комментировать",
)
]),
),
Spacer(),
Row(children: [
Padding(
padding: const EdgeInsets.only(right: 4),
child: Icon(Icons.favorite_outline),
),
Text(
"Нравится",
)
]),
Spacer(),
Padding(
padding: EdgeInsets.only(right: 4),
child: Icon(Icons.share_outlined),
),
]),
],
),
),
]));
}
Function onTapBack(BuildContext context) {
return () {
onTapArrowLeft(context);
};
}
_buildBottomBar(BuildContext context) {
return CustomBottomBar(onChanged: (BottomBarEnum type) {});
}
onTapArrowLeft(BuildContext context) {
NavigatorService.goBack();
}
_buildMenu(BuildContext context, FeedLoadedState state) {
return Container(
padding: EdgeInsets.all(12),
margin: EdgeInsets.only(bottom: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: const BorderRadius.all(Radius.circular(12)),
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 2,
blurRadius: 5,
offset: Offset(0, 3),
),
],
),
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
children: <Widget>[
ScrollItem(title: 'Все'),
ScrollItem(title: 'Рецепты'),
ScrollItem(title: 'Диеты'),
ScrollItem(title: 'Планы'),
ScrollItem(title: 'Записи'),
],
),
),
);
}
}

BIN
ios/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -21,6 +21,6 @@
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>9.0</string>
<string>12.0</string>
</dict>
</plist>

View File

@@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"

41
ios/Podfile Normal file
View File

@@ -0,0 +1,41 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '12.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}
def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end
File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
flutter_ios_podfile_setup
target 'Runner' do
use_frameworks!
use_modular_headers!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end

View File

@@ -3,12 +3,13 @@
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
68F4DD6659288F4CFDC41C5C /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7024DE075B2C1E5A149230E4 /* Pods_Runner.framework */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
@@ -31,7 +32,10 @@
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
1DC098B20AE17A152A9E7BC6 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
4B6A3CFB60775CA626789750 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
7024DE075B2C1E5A149230E4 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
@@ -42,6 +46,7 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
EC46FEE88A2E87A3510B5EC3 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -49,12 +54,31 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
68F4DD6659288F4CFDC41C5C /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
28430AE518366E9EB19A31C9 /* Frameworks */ = {
isa = PBXGroup;
children = (
7024DE075B2C1E5A149230E4 /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
6F201E010624CF963CC3A17B /* Pods */ = {
isa = PBXGroup;
children = (
1DC098B20AE17A152A9E7BC6 /* Pods-Runner.debug.xcconfig */,
4B6A3CFB60775CA626789750 /* Pods-Runner.release.xcconfig */,
EC46FEE88A2E87A3510B5EC3 /* Pods-Runner.profile.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
@@ -72,6 +96,8 @@
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
6F201E010624CF963CC3A17B /* Pods */,
28430AE518366E9EB19A31C9 /* Frameworks */,
);
sourceTree = "<group>";
};
@@ -105,12 +131,14 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
C9531164650CD277994F87F5 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
8944C2327F94FA34E28A19A3 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -127,7 +155,8 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1020;
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1510;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
@@ -171,10 +200,12 @@
/* Begin PBXShellScriptBuildPhase section */
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
);
name = "Thin Binary";
outputPaths = (
@@ -183,8 +214,26 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
8944C2327F94FA34E28A19A3 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
@@ -197,6 +246,28 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
C9531164650CD277994F87F5 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -235,6 +306,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
@@ -254,6 +326,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -264,6 +337,7 @@
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -272,7 +346,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -288,13 +362,17 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = VL68C36HYS;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
@@ -311,6 +389,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
@@ -330,6 +409,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -340,6 +420,7 @@
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
@@ -354,7 +435,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -366,6 +447,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
@@ -385,6 +467,7 @@
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -395,6 +478,7 @@
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -403,10 +487,11 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
@@ -420,13 +505,17 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = VL68C36HYS;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
@@ -447,13 +536,17 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = VL68C36HYS;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",

View File

@@ -2,6 +2,6 @@
<Workspace
version = "1.0">
<FileRef
location = "group:Runner.xcodeproj">
location = "self:">
</FileRef>
</Workspace>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
LastUpgradeVersion = "1510"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -27,8 +27,6 @@
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
@@ -38,8 +36,8 @@
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
@@ -61,8 +59,6 @@
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Profile"

View File

@@ -4,4 +4,7 @@
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

BIN
ios/Runner/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 932 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -27,39 +27,43 @@
"size" : "29x29"
},
{
"filename" : "Icon-App-20x20@2x.png",
"filename" : "80 1.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"filename" : "120 1.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"filename" : "",
"filename" : "120 2.png",
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"filename" : "",
"filename" : "180 1.png",
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"filename" : "40 1.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"filename" : "58 1.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"filename" : "80 2.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
@@ -71,16 +75,19 @@
"size" : "76x76"
},
{
"filename" : "152 1.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"filename" : "167 1.png",
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"filename" : "1024 1.png",
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -26,6 +26,13 @@
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>UserPhotoUpload</string>
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
<string>remote-notification</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
@@ -41,5 +48,9 @@
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,12 @@
import Flutter
import UIKit
import XCTest
class RunnerTests: XCTestCase {
func testExample() {
// If you add code to the Runner application, consider adding tests here.
// See https://developer.apple.com/documentation/xctest for more information about using XCTest.
}
}

255
lib/app_router.dart Normal file
View File

@@ -0,0 +1,255 @@
import 'package:eatvio_app/core/token_storage.dart';
import 'package:eatvio_app/features/chat/presentation/pages/chat_screen.dart';
import 'package:eatvio_app/features/chat/presentation/pages/chat_select_screen/chat_select_screen.dart';
import 'package:eatvio_app/presentation/auth/auth_screen/auth_screen.dart';
import 'package:eatvio_app/presentation/diary/diary_edit_screen/diary_edit_screen.dart';
import 'package:eatvio_app/presentation/diets/diet_create_screen/diet_create_screen.dart';
import 'package:eatvio_app/presentation/diets/diet_select_screen/diet_select_screen.dart';
import 'package:eatvio_app/presentation/feed/blog_post_create_screen/blog_post_create_screen.dart';
import 'package:eatvio_app/presentation/feed/blog_post_edit_screen/blog_post_edit_screen.dart';
import 'package:eatvio_app/presentation/feed/blog_post_screen/blog_post_screen.dart';
import 'package:eatvio_app/presentation/feed/feed_screen/feed_screen.dart';
import 'package:eatvio_app/presentation/glossary/glossary_screen/glossary_screen.dart';
import 'package:eatvio_app/presentation/plans/plan_select_screen/plan_select_screen.dart';
import 'package:eatvio_app/presentation/profile/my_profile_screen/my_profile_screen.dart';
import 'package:eatvio_app/presentation/profile/my_profile_screen/my_settings_screen.dart';
import 'package:eatvio_app/presentation/recipe/recipe_select_screen/recipe_select_screen.dart';
import 'package:eatvio_app/presentation/registration/additional_information_screen/additional_information_screen.dart';
import 'package:eatvio_app/presentation/registration/allergies_screen/allergies_screen.dart';
import 'package:eatvio_app/presentation/registration/blood_pressure_screen/blood_pressure_screen.dart';
import 'package:eatvio_app/presentation/registration/body_circumferences_screen/body_circumferences_screen.dart';
import 'package:eatvio_app/presentation/registration/city_of_living_screen/city_of_living_screen.dart';
import 'package:eatvio_app/presentation/registration/credentials_screen/credentials_screen.dart';
import 'package:eatvio_app/presentation/registration/date_of_birth_screen/date_of_birth_screen.dart';
import 'package:eatvio_app/presentation/registration/favorite_foods_screen/favorite_foods_screen.dart';
import 'package:eatvio_app/presentation/registration/favorite_sports_screen/favorite_sports_screen.dart';
import 'package:eatvio_app/presentation/registration/gender_screen/gender_screen.dart';
import 'package:eatvio_app/presentation/registration/height_screen/height_screen.dart';
import 'package:eatvio_app/presentation/registration/language_select_screen/language_select_screen.dart';
import 'package:eatvio_app/presentation/registration/medicine_intake_screen/medicine_intake_screen.dart';
import 'package:eatvio_app/presentation/registration/name_screen/name_screen.dart';
import 'package:eatvio_app/presentation/registration/weight_screen/weight_screen.dart';
import 'package:eatvio_app/widgets/bottom_navigation_bar_widget.dart';
import 'package:eatvio_app/features/chat/presentation/pages/photo_view_screen.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
class AppRouter {
static GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
static GoRouter appRouter = GoRouter(
initialLocation: '/auth-screen',
navigatorKey: navigatorKey,
routes: [
GoRoute(
path: '/auth-screen',
name: 'authScreen',
redirect: (context, state) async {
if (await TokenStorage.haveTokenInStorage()) return '/my-profile-screen';
return null;
},
builder: (context, state) => AuthScreen.builder(context),
routes: [
GoRoute(
path: 'language-select-screen',
name: 'languageSelectScreen',
builder: (context, state) => LanguageSelectScreen.builder(context),
routes: [
GoRoute(
path: 'credentials-screen',
name: 'credentialsScreen',
builder: (context, state) => CredentialsScreen.builder(context, state.extra),
routes: [
GoRoute(
path: 'name-screen',
name: 'nameScreen',
builder: (context, state) => NameScreen.builder(context, state.extra),
routes: [
GoRoute(
path: 'gender-screen',
name: 'genderScreen',
builder: (context, state) => GenderScreen.builder(context, state.extra),
routes: [
GoRoute(
path: 'date-of-birth-screen',
name: 'dateOfBirthScreen',
builder: (context, state) => DateOfBirthScreen.builder(context, state.extra),
routes: [
GoRoute(
path: 'city-of-living-screen',
name: 'cityOfLivingScreen',
builder: (context, state) => CityOfLivingScreen.builder(context, state.extra),
routes: [
GoRoute(
path: 'body-circumferences-screen',
name: 'bodyCircumferencesScreen',
builder: (context, state) => BodyCircumferencesScreen.builder(context, state.extra),
routes: [
GoRoute(
path: 'weight-screen',
name: 'weightScreen',
builder: (context, state) => WeightScreen.builder(context, state.extra),
routes: [
GoRoute(
path: 'height-screen',
name: 'heightScreen',
builder: (context, state) => HeightScreen.builder(context, state.extra),
routes: [
GoRoute(
path: 'blood-pressure-screen',
name: 'bloodPressureScreen',
builder: (context, state) => BloodPressureScreen.builder(context, state.extra),
routes: [
GoRoute(
path: 'favorite-sports-screen',
name: 'favoriteSportsScreen',
builder: (context, state) => FavoriteSportsScreen.builder(context, state.extra),
routes: [
GoRoute(
name: 'allergiesScreen',
path: 'allergiesScreen',
builder: (context, state) => AllergiesScreen.builder(context, state.extra),
routes: [
GoRoute(
name: 'medicineIntakeScreen',
path: 'medicine-intake-screen',
builder: (context, state) => MedicineIntakeScreen.builder(context, state.extra),
),
GoRoute(
name: 'favoriteFoodsScreen',
path: 'favorite-foods-screen',
builder: (context, state) => FavoriteFoodsScreen.builder(context, state.extra),
routes: [
GoRoute(
path: 'additional-information-screen',
name: 'additionalInformationScreen',
builder: (context, state) => AdditionalInformationScreen.builder(context, state.extra),
),
],
),
],
),
],
),
],
),
],
),
],
),
],
),
],
),
],
),
],
),
],
),
],
),
],
),
],
),
ShellRoute(
builder: (context, state, child) {
return BottomNavigationBarWidget(child: child);
},
routes: [
GoRoute(
path: '/my-profile-screen',
name: 'myProfileScreen',
builder: (context, state) => MyProfileScreen(),
),
GoRoute(
path: '/feed-screen',
name: 'feedScreen',
builder: (context, state) => FeedScreen(),
routes: [
GoRoute(
path: 'blog-post-create-screen',
name: 'blogPostCreateScreen',
builder: (context, state) => BlogPostCreateScreen.builder(context),
),
GoRoute(
path: 'blog-post-screen',
name: 'blogPostScreen',
builder: (context, state) => BlogPostScreen.builder(
context,
state.extra.toString(),
),
routes: [
GoRoute(
path: 'blog-post-edit-screen',
name: 'blogPostEditScreen',
builder: (context, state) => BlogPostEditScreen.builder(
context,
state.extra,
),
),
],
),
],
),
GoRoute(
path: '/diary-screen',
name: 'diaryScreen',
builder: (context, state) => DiaryEditScreen(),
),
GoRoute(
path: '/chat-select-screen',
name: 'chatSelectScreen',
builder: (context, state) => ChatSelectScreen(),
routes: [
GoRoute(
path: 'chat-screen',
name: 'chatScreen',
builder: (context, state) => ChatScreen(chatId: state.extra as String),
),
],
),
],
),
GoRoute(
path: '/my-settings-screen',
name: 'mySettingsScreen',
builder: (context, state) => MySettingsScreen.builder(context),
),
GoRoute(
path: '/recipe-select-screen',
name: 'recipeSelectScreen',
builder: (context, state) => RecipeSelectScreen.builder(context),
),
GoRoute(
path: '/diet-select-screen',
name: 'dietSelectScreen',
builder: (context, state) => DietSelectScreen.builder(context),
),
GoRoute(
path: '/diet-create-screen',
name: 'dietCreateScreen',
builder: (context, state) => DietCreateScreen.builder(context),
),
GoRoute(
path: '/plan-select-screen',
name: 'planSelectScreen',
builder: (context, state) => PlanSelectScreen.builder(context),
),
GoRoute(
path: '/glossary-screen',
name: 'glossaryScreen',
builder: (context, state) => GlossaryScreen.builder(context),
),
GoRoute(
path: '/photo-view-screen/:index',
name: 'photoViewScreen',
builder: (context, state) => PhotoViewScreen(
imageUrls: state.extra as List<String>,
index: int.parse(state.pathParameters['index']!),
),
),
],
);
}

View File

@@ -1,16 +1,13 @@
export 'package:connectivity_plus/connectivity_plus.dart';
export 'package:flutter_bloc/flutter_bloc.dart';
export 'package:eatvio_app/core/constants/constants.dart';
export 'package:eatvio_app/core/errors/exceptions.dart';
export 'package:eatvio_app/core/network/network_info.dart';
export 'package:eatvio_app/core/utils/image_constant.dart';
export 'package:eatvio_app/core/utils/logger.dart';
export 'package:eatvio_app/core/utils/navigator_service.dart';
export 'package:eatvio_app/core/utils/pref_utils.dart';
export 'package:eatvio_app/core/utils/size_utils.dart';
export 'package:eatvio_app/data/models/selectionPopupModel/selection_popup_model.dart';
export 'package:eatvio_app/localization/app_localization.dart';
export 'package:eatvio_app/routes/app_routes.dart';
export 'package:eatvio_app/theme/app_decoration.dart';
export 'package:eatvio_app/theme/custom_text_style.dart';
export 'package:eatvio_app/theme/theme_helper.dart';

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