├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
└── workflows
│ ├── client_checkout.yml
│ ├── client_deploy_preview_channel.yml
│ ├── client_deploy_production.yml
│ ├── server_checkout.yml
│ └── server_deploy_production.yml
├── .gitignore
├── Makefile
├── README.md
├── client
├── .firebaserc
├── .gitignore
├── .metadata
├── .run
│ ├── App [dev].run.xml
│ ├── App [prod].run.xml
│ └── App [stg].run.xml
├── LICENSE
├── Makefile
├── README.md
├── analysis_options.yaml
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ ├── google-services.json
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── dev
│ │ │ ├── AndroidManifest.xml
│ │ │ └── google-services.json
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── kotlin
│ │ │ │ └── dev
│ │ │ │ │ └── plugfox
│ │ │ │ │ └── dartjobs
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-hdpi
│ │ │ │ └── splash.png
│ │ │ │ ├── drawable-mdpi
│ │ │ │ └── splash.png
│ │ │ │ ├── drawable-v21
│ │ │ │ ├── background.png
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── drawable-xhdpi
│ │ │ │ └── splash.png
│ │ │ │ ├── drawable-xxhdpi
│ │ │ │ └── splash.png
│ │ │ │ ├── drawable-xxxhdpi
│ │ │ │ └── splash.png
│ │ │ │ ├── drawable
│ │ │ │ ├── background.png
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values-night
│ │ │ │ └── styles.xml
│ │ │ │ ├── values-v31
│ │ │ │ └── styles.xml
│ │ │ │ └── values
│ │ │ │ └── styles.xml
│ │ │ ├── prod
│ │ │ ├── AndroidManifest.xml
│ │ │ └── google-services.json
│ │ │ ├── profile
│ │ │ └── AndroidManifest.xml
│ │ │ └── stage
│ │ │ ├── AndroidManifest.xml
│ │ │ └── google-services.json
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── assets
│ ├── icon
│ │ ├── 0.5x
│ │ │ └── icon@0.5x.png
│ │ ├── 0.75x
│ │ │ └── icon@0.75x.png
│ │ ├── 1.5x
│ │ │ └── icon@1.5x.png
│ │ ├── 1x
│ │ │ └── icon.png
│ │ ├── 2x
│ │ │ └── icon@2x.png
│ │ ├── 3x
│ │ │ └── icon@3x.png
│ │ ├── 4x
│ │ │ └── icon@4x.png
│ │ └── SVG
│ │ │ └── icon.svg
│ ├── image
│ │ └── dart_logo
│ │ │ ├── SVG
│ │ │ └── dart_logo.svg
│ │ │ └── dart_logo_toolbar.png
│ └── splash
│ │ └── image.png
├── build.yaml
├── firebase.json
├── firestore.indexes.json
├── firestore.rules
├── ios
│ ├── .gitignore
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Podfile
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ ├── BrandingImage.imageset
│ │ │ └── Contents.json
│ │ ├── LaunchBackground.imageset
│ │ │ ├── Contents.json
│ │ │ └── background.png
│ │ └── LaunchImage.imageset
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ └── README.md
│ │ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ │ ├── GoogleService-Info.plist
│ │ ├── Info.plist
│ │ └── Runner-Bridging-Header.h
├── l10n.yaml
├── lib
│ ├── main.dart
│ ├── runner_io.dart
│ ├── runner_stub.dart
│ ├── runner_web.dart
│ └── src
│ │ ├── app.dart
│ │ ├── common
│ │ ├── bloc
│ │ │ ├── app_bloc_observer.dart
│ │ │ ├── bloc_set_state_mixin.dart
│ │ │ └── platform
│ │ │ │ ├── app_observer_io.dart
│ │ │ │ └── app_observer_web.dart
│ │ ├── constant
│ │ │ ├── environment.dart
│ │ │ ├── firebase_options.dart
│ │ │ ├── layout_constraints.dart
│ │ │ └── storage_namespace.dart
│ │ ├── localization
│ │ │ ├── intl_en.arb
│ │ │ ├── intl_ru.arb
│ │ │ └── localizations.dart
│ │ ├── model
│ │ │ ├── app_metadata.dart
│ │ │ └── exceptions.dart
│ │ ├── router
│ │ │ ├── analytics_navigator_observer.dart
│ │ │ ├── configuration.dart
│ │ │ ├── information_parser.dart
│ │ │ ├── information_provider.dart
│ │ │ ├── navigator_observer.dart
│ │ │ ├── no_animation_transition_delegate.dart
│ │ │ ├── pages.dart
│ │ │ ├── pages_builder.dart
│ │ │ ├── router.dart
│ │ │ ├── router_delegate.dart
│ │ │ └── router_util.dart
│ │ ├── utils
│ │ │ ├── authentication_observer.dart
│ │ │ ├── error_util.dart
│ │ │ ├── firebase_initializer.dart
│ │ │ ├── iterable_to_stream_coverter.dart
│ │ │ ├── list_unique.dart
│ │ │ ├── locale_util.dart
│ │ │ ├── performance_link.dart
│ │ │ ├── platform
│ │ │ │ ├── authentication_observer_io.dart
│ │ │ │ ├── authentication_observer_web.dart
│ │ │ │ ├── error_util_io.dart
│ │ │ │ └── error_util_web.dart
│ │ │ ├── screen_util.dart
│ │ │ └── sentry_wrapper.dart
│ │ └── widget
│ │ │ ├── adaptive_scaffold.dart
│ │ │ ├── app_material_context.dart
│ │ │ ├── custom_scroll_view_smooth.dart
│ │ │ ├── dart_logo_icon.dart
│ │ │ ├── drawer_scope.dart
│ │ │ ├── error_snackbar.dart
│ │ │ ├── snackbars_for_global_scope.dart
│ │ │ ├── statuses_overlay.dart
│ │ │ └── successful_snackbar.dart
│ │ └── feature
│ │ ├── authentication
│ │ ├── bloc
│ │ │ └── authentication_bloc.dart
│ │ ├── data
│ │ │ └── authentication_repository.dart
│ │ ├── model
│ │ │ └── user_entity.dart
│ │ └── widget
│ │ │ ├── authentication_scope.dart
│ │ │ ├── profile_screen.dart
│ │ │ ├── profile_widget.dart
│ │ │ └── user_avatar.dart
│ │ ├── browser_capabilities
│ │ ├── models
│ │ │ ├── browser_capabilities_data.dart
│ │ │ ├── browser_capabilities_data_io.dart
│ │ │ └── browser_capabilities_data_web.dart
│ │ └── widgets
│ │ │ └── browser_capabilities.dart
│ │ ├── bug_report
│ │ ├── bloc
│ │ │ └── bug_report_bloc.dart
│ │ ├── logic
│ │ │ └── bug_report_repository.dart
│ │ ├── model
│ │ │ └── bug_report_entity.dart
│ │ └── widget
│ │ │ ├── bug_report_description_input.dart
│ │ │ └── bug_report_page.dart
│ │ ├── cloud_messaging
│ │ ├── bloc
│ │ │ └── cloud_messaging_bloc.dart
│ │ ├── data
│ │ │ └── cloud_messaging_service.dart
│ │ ├── model
│ │ │ └── notification_status.dart
│ │ └── widget
│ │ │ └── cloud_messaging_scope.dart
│ │ ├── feed
│ │ ├── bloc
│ │ │ └── feed_bloc.dart
│ │ └── widget
│ │ │ ├── feed_bar.dart
│ │ │ ├── feed_employment_filter.dart
│ │ │ ├── feed_filter_bottom_sheet.dart
│ │ │ ├── feed_level_filter.dart
│ │ │ ├── feed_list.dart
│ │ │ ├── feed_relocation_filter.dart
│ │ │ ├── feed_remote_filter.dart
│ │ │ ├── feed_scope.dart
│ │ │ ├── feed_screen.dart
│ │ │ ├── feed_search_bar.dart
│ │ │ └── feed_tile.dart
│ │ ├── initialization
│ │ ├── bloc
│ │ │ └── initialization_bloc.dart
│ │ ├── data
│ │ │ ├── app_migrator.dart
│ │ │ ├── graphql_client_creator.dart
│ │ │ └── initialization_helper.dart
│ │ ├── model
│ │ │ └── initialization_progress.dart
│ │ └── widget
│ │ │ └── repository_scope.dart
│ │ ├── job
│ │ ├── bloc
│ │ │ └── job_bloc.dart
│ │ ├── data
│ │ │ ├── job_network_data_provider.dart
│ │ │ └── job_repository.dart
│ │ └── widget
│ │ │ ├── edit
│ │ │ ├── country_picker.dart
│ │ │ ├── job_bottom_sheet.dart
│ │ │ ├── job_description_input.dart
│ │ │ ├── job_edit_buttons.dart
│ │ │ ├── job_edit_flow.dart
│ │ │ ├── job_edit_form.dart
│ │ │ ├── job_employments_input.dart
│ │ │ ├── job_levels_input.dart
│ │ │ ├── job_relocation_input.dart
│ │ │ ├── job_remote_input.dart
│ │ │ └── job_single_line_input.dart
│ │ │ ├── job_not_found.dart
│ │ │ ├── job_page.dart
│ │ │ └── view
│ │ │ ├── job_view.dart
│ │ │ └── share_button.dart
│ │ ├── not_found
│ │ └── widget
│ │ │ └── not_found_screen.dart
│ │ └── settings
│ │ ├── bloc
│ │ └── settings_bloc.dart
│ │ ├── data
│ │ └── settings_repository.dart
│ │ ├── model
│ │ └── user_settings.dart
│ │ └── widget
│ │ ├── flags
│ │ ├── horizontal_lines_flag_painter.dart
│ │ ├── russia_flag_painter.dart
│ │ └── usa_flag_painter.dart
│ │ ├── platform.dart
│ │ ├── platform
│ │ ├── platform_io.dart
│ │ └── platform_web.dart
│ │ ├── settings_list.dart
│ │ ├── settings_scope.dart
│ │ ├── settings_screen.dart
│ │ └── settings_tile.dart
├── linux
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── flutter
│ │ ├── CMakeLists.txt
│ │ ├── generated_plugin_registrant.cc
│ │ ├── generated_plugin_registrant.h
│ │ └── generated_plugins.cmake
│ ├── main.cc
│ ├── my_application.cc
│ └── my_application.h
├── macos
│ ├── .gitignore
│ ├── Flutter
│ │ ├── Flutter-Debug.xcconfig
│ │ ├── Flutter-Release.xcconfig
│ │ └── GeneratedPluginRegistrant.swift
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── app_icon_1024.png
│ │ │ ├── app_icon_128.png
│ │ │ ├── app_icon_16.png
│ │ │ ├── app_icon_256.png
│ │ │ ├── app_icon_32.png
│ │ │ ├── app_icon_512.png
│ │ │ └── app_icon_64.png
│ │ ├── Base.lproj
│ │ └── MainMenu.xib
│ │ ├── Configs
│ │ ├── AppInfo.xcconfig
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ └── Warnings.xcconfig
│ │ ├── DebugProfile.entitlements
│ │ ├── Info.plist
│ │ ├── MainFlutterWindow.swift
│ │ └── Release.entitlements
├── pubspec.yaml
├── remoteconfig.template.json
├── test
│ └── unit_test.dart
├── tools
│ └── set_version.dart
├── web
│ ├── .well-known
│ │ └── assetlinks.json
│ ├── android-chrome-144x144.png
│ ├── android-chrome-192x192.png
│ ├── android-chrome-256x256.png
│ ├── android-chrome-36x36.png
│ ├── android-chrome-384x384.png
│ ├── android-chrome-48x48.png
│ ├── android-chrome-512x512.png
│ ├── android-chrome-72x72.png
│ ├── android-chrome-96x96.png
│ ├── apple-touch-icon-114x114-precomposed.png
│ ├── apple-touch-icon-114x114.png
│ ├── apple-touch-icon-120x120-precomposed.png
│ ├── apple-touch-icon-120x120.png
│ ├── apple-touch-icon-144x144-precomposed.png
│ ├── apple-touch-icon-144x144.png
│ ├── apple-touch-icon-152x152-precomposed.png
│ ├── apple-touch-icon-152x152.png
│ ├── apple-touch-icon-180x180-precomposed.png
│ ├── apple-touch-icon-180x180.png
│ ├── apple-touch-icon-57x57-precomposed.png
│ ├── apple-touch-icon-57x57.png
│ ├── apple-touch-icon-60x60-precomposed.png
│ ├── apple-touch-icon-60x60.png
│ ├── apple-touch-icon-72x72-precomposed.png
│ ├── apple-touch-icon-72x72.png
│ ├── apple-touch-icon-76x76-precomposed.png
│ ├── apple-touch-icon-76x76.png
│ ├── apple-touch-icon-precomposed.png
│ ├── apple-touch-icon.png
│ ├── browserconfig.xml
│ ├── favicon-16x16.png
│ ├── favicon-194x194.png
│ ├── favicon-32x32.png
│ ├── favicon.ico
│ ├── favicon.png
│ ├── index.html
│ ├── js
│ │ └── firebase-messaging-sw.js
│ ├── manifest.json
│ ├── mstile-144x144.png
│ ├── mstile-150x150.png
│ ├── mstile-310x150.png
│ ├── mstile-310x310.png
│ ├── mstile-70x70.png
│ ├── robots.txt
│ ├── safari-pinned-tab.svg
│ ├── site.webmanifest
│ └── splash
│ │ ├── img
│ │ ├── dark-1x.png
│ │ ├── dark-2x.png
│ │ ├── dark-3x.png
│ │ ├── dark-4x.png
│ │ ├── light-1x.png
│ │ ├── light-2x.png
│ │ ├── light-3x.png
│ │ └── light-4x.png
│ │ └── style.css
└── windows
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── flutter
│ ├── CMakeLists.txt
│ ├── generated_plugin_registrant.cc
│ ├── generated_plugin_registrant.h
│ └── generated_plugins.cmake
│ └── runner
│ ├── CMakeLists.txt
│ ├── Runner.rc
│ ├── flutter_window.cpp
│ ├── flutter_window.h
│ ├── main.cpp
│ ├── resource.h
│ ├── resources
│ └── app_icon.ico
│ ├── runner.exe.manifest
│ ├── utils.cpp
│ ├── utils.h
│ ├── win32_window.cpp
│ └── win32_window.h
├── dart-jobs.prod.compose.yml
├── dart-jobs.prod.stack.yml
├── dockerfiles
├── jwt_validator_firebase.dockerfile
└── site.dockerfile
├── server
└── jwt_validator_firebase
│ ├── JwtValidatorFirebase.sln
│ ├── JwtValidatorFirebase.sln.DotSettings
│ └── JwtValidatorFirebase
│ ├── .dockerignore
│ ├── Controllers
│ ├── HealthCheckController.cs
│ └── JwtValidatorController.cs
│ ├── Enums
│ └── HasuraRoles.cs
│ ├── Interfaces
│ └── IJwtValidatorService.cs
│ ├── JwtValidatorFirebase.csproj
│ ├── JwtValidatorFirebase.csproj.user
│ ├── Models
│ └── ValidatorResponse.cs
│ ├── Program.cs
│ ├── Properties
│ └── launchSettings.json
│ ├── Services
│ └── JwtValidatorService.cs
│ ├── Startup.cs
│ ├── appsettings.Development.json
│ └── appsettings.json
└── shared
├── .gitignore
├── CHANGELOG.md
├── Makefile
├── README.md
├── analysis_options.yaml
├── build.yaml
├── lib
├── graphql.dart
├── model.dart
├── src
│ ├── graphql
│ │ ├── api.dart
│ │ ├── api.graphql.dart
│ │ ├── api.graphql.g.dart
│ │ ├── client.dart
│ │ ├── exceptions.dart
│ │ ├── links
│ │ │ ├── exception_link.dart
│ │ │ ├── handler_link.dart
│ │ │ ├── interceptor_link.dart
│ │ │ └── metadata_link.dart
│ │ └── parsers
│ │ │ ├── bpchar.dart
│ │ │ ├── employment.dart
│ │ │ ├── int_array.dart
│ │ │ ├── level.dart
│ │ │ ├── relocation.dart
│ │ │ ├── text.dart
│ │ │ └── timestamp.dart
│ ├── model
│ │ ├── country.dart
│ │ ├── enum.dart
│ │ ├── enum.freezed.dart
│ │ ├── enum.g.dart
│ │ ├── job.dart
│ │ ├── job.freezed.dart
│ │ └── job.g.dart
│ └── util
│ │ ├── date_util.dart
│ │ ├── graphql_array.dart
│ │ ├── money_util.dart
│ │ └── null_or.dart
└── util.dart
├── pubspec.yaml
├── queries
├── create_job.graphql
├── delete_job.graphql
├── get_job.graphql
├── paginate.graphql
├── recent.graphql
└── update_job.graphql
└── schema.graphql
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: "[BUG] Untitled Bug Issue"
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behavior**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Environment (please complete the following information):**
27 | - [ ] OS: [e.g. Android]
28 | - [ ] Browser [e.g. Chrome, Safari]
29 | - [ ] Version [e.g. 22]
30 |
31 | **Additional context**
32 | - Context [e.g. flutter doctor -v]
33 | Add any other context about the problem here.
34 |
35 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: "[FR] Untitled Feature Request"
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **1~3 main use cases of the proposed feature**
11 |
12 | **What types of users can benefit from using your proposed feature**
13 |
14 | **Additional context**
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.github/workflows/client_checkout.yml:
--------------------------------------------------------------------------------
1 | name: CLIENT / CHECKOUT
2 |
3 | on:
4 | push:
5 | branches:
6 | - 'feature/**'
7 | - 'bugfix/**'
8 | - 'hotfix/**'
9 | - 'support/**'
10 | paths:
11 | - 'client/lib/**.dart'
12 | pull_request:
13 | branches:
14 | - 'feature/**'
15 | - 'bugfix/**'
16 | - 'hotfix/**'
17 | - 'support/**'
18 | paths:
19 | - 'client/lib/**.dart'
20 | workflow_dispatch:
21 |
22 | jobs:
23 | check-client:
24 | name: 'Checkout client'
25 | timeout-minutes: 5
26 | runs-on: ubuntu-latest
27 | container:
28 | image: plugfox/flutter:2.10.3
29 | options: --user root
30 | env:
31 | working-directory: ./client
32 | steps:
33 | - name: 🚂 Get latest code
34 | uses: actions/checkout@v2
35 |
36 | - name: 🚃 Cache pub modules
37 | uses: actions/cache@v2
38 | env:
39 | cache-name: cache-pub-modules
40 | with:
41 | path: |
42 | $PWD/.pub_cache/
43 | key: ${{ runner.os }}-dart
44 |
45 | - name: 🗄️ Export pub cache directory
46 | run: export PUB_CACHE=$PWD/.pub_cache/
47 |
48 | - name: 🚚 Get dependencies
49 | working-directory: ${{ env.working-directory }}
50 | run: |
51 | flutter pub get \
52 | && flutter pub global activate intl_utils
53 |
54 | - name: 🏗️ Codegen
55 | working-directory: ${{ env.working-directory }}
56 | run: |
57 | flutter pub run build_runner build --delete-conflicting-outputs --release ; \
58 | flutter pub global run intl_utils:generate
59 |
60 | - name: ✔️ Check sources with analyzer
61 | working-directory: ${{ env.working-directory }}
62 | run: |
63 | flutter analyze --no-pub --current-package --congratulate \
64 | --current-package --no-fatal-infos --fatal-warnings \
65 | --no-preamble --write=analyze.txt
66 |
67 | - name: 📁 Upload result
68 | uses: actions/upload-artifact@v2
69 | with:
70 | name: test
71 | if-no-files-found: ignore
72 | retention-days: 7
73 | path: |
74 | client/analyze.txt
75 |
--------------------------------------------------------------------------------
/.github/workflows/server_checkout.yml:
--------------------------------------------------------------------------------
1 | name: SERVER / CHECKOUT
2 |
3 | on:
4 | push:
5 | branches:
6 | - 'master'
7 | - 'develop'
8 | - 'feature/**'
9 | - 'release/**'
10 | - 'bugfix/**'
11 | - 'hotfix/**'
12 | - 'support/**'
13 | paths:
14 | - 'server/**.dart'
15 | pull_request:
16 | branches:
17 | - 'master'
18 | - 'develop'
19 | - 'feature/**'
20 | - 'release/**'
21 | - 'bugfix/**'
22 | - 'hotfix/**'
23 | - 'support/**'
24 | paths:
25 | - 'server/**.dart'
26 | workflow_dispatch:
27 |
28 | jobs:
29 | check-server:
30 | name: 'Checkout server'
31 | runs-on: ubuntu-latest
32 | container:
33 | image: google/dart:beta
34 | steps:
35 | - uses: actions/checkout@v2
36 | - name: 🔎 Checkout server source code
37 | run: |
38 | cd server
39 | echo Install Dependencies; \
40 | dart pub get
41 | echo Check format; \
42 | dart format --set-exit-if-changed -l 120 -o none .
43 | echo Check analyzer; \
44 | dart analyze --fatal-infos --fatal-warnings lib
--------------------------------------------------------------------------------
/.github/workflows/server_deploy_production.yml:
--------------------------------------------------------------------------------
1 | name: SERVER / DEPLOY
2 |
3 | on:
4 | workflow_dispatch:
5 | #inputs:
6 | # version:
7 | # description: 'Flutter version from https://github.com/flutter/flutter/tags'
8 | # required: true
9 |
10 | jobs:
11 | build-and-deploy:
12 | name: 'Build and deploy server'
13 | runs-on: ubuntu-latest
14 |
15 | steps:
16 | - uses: actions/checkout@v2
17 |
18 | - name: ✨ Log into registry
19 | run: echo "${{ secrets.DOCKER_REGISTRY_LOGIN_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_REGISTRY_LOGIN_USERNAME }} --password-stdin https://registry.plugfox.dev
20 |
21 | - name: 📦 Pull dart:beta
22 | run: docker pull dart:stable
23 |
24 | - name: 🏗️ Build images
25 | run: make -C ./ -f ./Makefile build
26 |
27 | - name: 💾 Push images to registry
28 | run: make -C ./ -f ./Makefile push
29 |
30 | - name: 🔥 Deploy to swarm
31 | run: |
32 | INPUT_REMOTE_HOST="api.plugfox.dev"
33 |
34 | echo "Registering SSH keys..."
35 | mkdir -p "$HOME/.ssh"
36 | printf '%s' "${{ secrets.DOCKER_SWARM_SSH_PRIVATE_KEY }}" >> "${HOME}/.ssh/docker"
37 | chmod 600 "$HOME/.ssh/docker" && eval $(ssh-agent) && ssh-add "${HOME}/.ssh/docker"
38 |
39 | echo "Add public key to known hosts..."
40 | printf '%s %s\n' "$INPUT_REMOTE_HOST" "${{ secrets.DOCKER_SWARM_SSH_PUBLIC_KEY }}" >> "${HOME}/.ssh/known_hosts"
41 |
42 | echo "Deploying..."
43 | make -C ./ -f ./Makefile deploy
44 |
45 | rm -rf "$HOME/.ssh"
46 |
47 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | .PHONY: clean format get upgrade outdated push run deploy
2 |
3 | all:
4 | @echo "Мейкфайл управляющий монорепо. Можно собрать и перераскатить весь сервер."
5 |
6 | clean:
7 | @echo "Cleaning the project"
8 | dart clean --directory=server
9 |
10 | format:
11 | @echo "Formatting the code"
12 | @dart fix --apply server
13 | dart format -l 120 --fix server
14 |
15 | get:
16 | @echo "Geting dependencies"
17 | dart pub get --directory=server
18 |
19 | upgrade: get
20 | @echo "Upgrading dependencies"
21 | dart pub upgrade --directory=server
22 |
23 | build-server:
24 | @echo "Build release docker images"
25 | docker-compose -f ./dart-jobs.prod.compose.yml build --no-cache --force-rm --compress --parallel
26 |
27 | push-server:
28 | @echo "Push release docker images"
29 | docker-compose -f ./dart-jobs.prod.compose.yml push
30 |
31 | start-server:
32 | @echo "Run local server"
33 | docker-compose -f ./dart-jobs.prod.compose.yml up --detach
34 |
35 | stop-server:
36 | @echo "Stop local server"
37 | docker-compose -f ./dart-jobs.prod.compose.yml down
38 |
39 | redeploy-server:
40 | @echo "Deploy release into docker swarm"
41 | docker --log-level debug --host "ssh://pfx@api.plugfox.dev" stack deploy --compose-file ./dart-jobs.prod.stack.yml --orchestrator swarm --prune --with-registry-auth dart-jobs-prod
42 |
43 | build-and-push-server: build-server push-server
44 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # DART JOBS
2 | [](https://github.com/PlugFox/dart-jobs/actions/workflows/client_deploy_production.yml)
3 | [](https://github.com/tenhobi/effective_dart)
4 | [](https://en.wikipedia.org/wiki/Proprietary_software)
5 | [](https://app.localizely.com/projects/)
6 | [](https://console.firebase.google.com/u/0/project/dart-job/overview)
7 | [](https://dart-jobs.plugfox.dev)
8 | ---
9 |
10 |
--------------------------------------------------------------------------------
/client/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "dart-job"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/client/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 | .vscode/
18 |
19 | # The .vscode folder contains launch configuration and tasks you configure in
20 | # VS Code which you may wish to be included in version control, so this line
21 | # is commented out by default.
22 | #.vscode/
23 |
24 | # Flutter/Dart/Pub related
25 | **/doc/api/
26 | **/ios/Flutter/.last_build_id
27 | .dart_tool/
28 | .flutter-plugins
29 | .flutter-plugins-dependencies
30 | .packages
31 | .pub-cache/
32 | .pub/
33 | /build/
34 | pubspec.lock
35 |
36 | # Web related
37 | lib/generated_plugin_registrant.dart
38 |
39 | # Symbolication related
40 | app.*.symbols
41 |
42 | # Obfuscation related
43 | app.*.map.json
44 |
45 | # Codegen
46 | *.g.dart
47 | *.g.java
48 | *.g.kt
49 | *.freezed.dart
50 | *.gen.dart
51 | *.moor.dart
52 | *.mocks.dart
53 | *.hive.dart
54 | /lib/src/common/localization/l10n.dart
55 | /lib/src/common/localization/intl/messages_??.dart
56 | /lib/src/common/localization/intl/messages_???.dart
57 |
58 | # Database
59 | *.db
60 | *.sqlite
61 | *.hive
62 | *.lock
63 |
64 | # Logs
65 | /logs/
66 | /coverage/
67 |
68 | # Firebase
69 | #.firebase/
70 |
71 | android/keystore.properties
72 |
73 | # SKSL shaders warm-up
74 | *.sksl.json
75 |
76 | version.env
--------------------------------------------------------------------------------
/client/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 19c61fed0da681ba2068c97e22add3bde38e51e4
8 | channel: beta
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/client/.run/App [dev].run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/client/.run/App [prod].run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/client/.run/App [stg].run.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/client/LICENSE:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/LICENSE
--------------------------------------------------------------------------------
/client/Makefile:
--------------------------------------------------------------------------------
1 | .PHONY: clean format get upgrade upgrade-major outdated codegen init build build-site
2 |
3 | init:
4 | @npm install -g firebase-tools
5 | @firebase init
6 | -firebase login
7 | @flutter pub global activate intl_utils
8 | @dart pub global activate flutterfire_cli
9 | @flutterfire configure \
10 | -i dev.plugfox.dartjobs \
11 | -m dev.plugfox.dartjobs \
12 | -a dev.plugfox.dartjobs \
13 | -p dart-job \
14 | -e plugfox@gmail.com \
15 | -o lib/src/common/constant/firebase_options.g.dart
16 |
17 | clean:
18 | @echo "Cleaning the project"
19 | @flutter clean
20 |
21 | format:
22 | @echo "Formatting the code"
23 | @dart fix --apply .
24 | @dart format -l 120 --fix .
25 |
26 | get:
27 | @echo "Getting dependencies"
28 | @flutter pub get
29 |
30 | upgrade: get
31 | @echo "Upgrading dependencies"
32 | @flutter pub upgrade
33 |
34 | upgrade-major: get
35 | @echo "Upgrading dependencies --major-versions"
36 | @flutter pub upgrade --major-versions
37 |
38 | outdated:
39 | @flutter pub outdated
40 |
41 | codegen: get
42 | @echo "Running codegeneration"
43 | -dart run tools/set_version.dart
44 | @flutter pub run build_runner build --delete-conflicting-outputs --release
45 | @flutter pub global run intl_utils:generate
46 |
47 | build: codegen build-site
48 |
49 | build-site:
50 | @flutter build web --release --no-source-maps --pwa-strategy offline-first --web-renderer auto --base-href /
51 |
52 | deploy:
53 | @firebase deploy
54 |
55 | serve:
56 | @firebase serve --only hosting -p 80
--------------------------------------------------------------------------------
/client/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 | **/*.keystore
13 | **/*.jks
14 |
--------------------------------------------------------------------------------
/client/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/client/android/app/src/dev/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/client/android/app/src/main/kotlin/dev/plugfox/dartjobs/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package dev.plugfox.dartjobs
2 |
3 | import android.os.Bundle
4 | import android.os.PersistableBundle
5 | import io.flutter.embedding.android.FlutterActivity
6 |
7 | class MainActivity: FlutterActivity() {
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/client/android/app/src/main/res/drawable-hdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/android/app/src/main/res/drawable-hdpi/splash.png
--------------------------------------------------------------------------------
/client/android/app/src/main/res/drawable-mdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/android/app/src/main/res/drawable-mdpi/splash.png
--------------------------------------------------------------------------------
/client/android/app/src/main/res/drawable-v21/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/android/app/src/main/res/drawable-v21/background.png
--------------------------------------------------------------------------------
/client/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 | -
7 |
8 |
9 |
--------------------------------------------------------------------------------
/client/android/app/src/main/res/drawable-xhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/android/app/src/main/res/drawable-xhdpi/splash.png
--------------------------------------------------------------------------------
/client/android/app/src/main/res/drawable-xxhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/android/app/src/main/res/drawable-xxhdpi/splash.png
--------------------------------------------------------------------------------
/client/android/app/src/main/res/drawable-xxxhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/android/app/src/main/res/drawable-xxxhdpi/splash.png
--------------------------------------------------------------------------------
/client/android/app/src/main/res/drawable/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/android/app/src/main/res/drawable/background.png
--------------------------------------------------------------------------------
/client/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 | -
7 |
8 |
9 |
--------------------------------------------------------------------------------
/client/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/client/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/client/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/client/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/client/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/client/android/app/src/main/res/values-night/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/client/android/app/src/main/res/values-v31/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
14 |
17 |
--------------------------------------------------------------------------------
/client/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
16 |
19 |
--------------------------------------------------------------------------------
/client/android/app/src/prod/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/client/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/client/android/app/src/stage/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/client/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.6.10'
3 | repositories {
4 | google()
5 | mavenCentral()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.google.gms:google-services:4.3.10'
10 | classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
11 | classpath 'com.android.tools.build:gradle:4.1.0'
12 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
13 | }
14 | }
15 |
16 | allprojects {
17 | repositories {
18 | google()
19 | mavenCentral()
20 | }
21 | }
22 |
23 | rootProject.buildDir = '../build'
24 | subprojects {
25 | project.buildDir = "${rootProject.buildDir}/${project.name}"
26 | }
27 | subprojects {
28 | project.evaluationDependsOn(':app')
29 | }
30 |
31 | task clean(type: Delete) {
32 | delete rootProject.buildDir
33 | }
--------------------------------------------------------------------------------
/client/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/client/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
7 |
--------------------------------------------------------------------------------
/client/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
13 | // Fixed https://github.com/flutter/flutter/issues/97729 by adding the lines below
14 |
15 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
16 |
17 | def plugins = new Properties()
18 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
19 | if (pluginsFile.exists()) {
20 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
21 | }
22 |
23 | plugins.each { name, path ->
24 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
25 | include ":$name"
26 | project(":$name").projectDir = pluginDirectory
27 | }
--------------------------------------------------------------------------------
/client/assets/icon/0.5x/icon@0.5x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/assets/icon/0.5x/icon@0.5x.png
--------------------------------------------------------------------------------
/client/assets/icon/0.75x/icon@0.75x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/assets/icon/0.75x/icon@0.75x.png
--------------------------------------------------------------------------------
/client/assets/icon/1.5x/icon@1.5x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/assets/icon/1.5x/icon@1.5x.png
--------------------------------------------------------------------------------
/client/assets/icon/1x/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/assets/icon/1x/icon.png
--------------------------------------------------------------------------------
/client/assets/icon/2x/icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/assets/icon/2x/icon@2x.png
--------------------------------------------------------------------------------
/client/assets/icon/3x/icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/assets/icon/3x/icon@3x.png
--------------------------------------------------------------------------------
/client/assets/icon/4x/icon@4x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/assets/icon/4x/icon@4x.png
--------------------------------------------------------------------------------
/client/assets/icon/SVG/icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/assets/image/dart_logo/SVG/dart_logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/assets/image/dart_logo/dart_logo_toolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/assets/image/dart_logo/dart_logo_toolbar.png
--------------------------------------------------------------------------------
/client/assets/splash/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/assets/splash/image.png
--------------------------------------------------------------------------------
/client/build.yaml:
--------------------------------------------------------------------------------
1 | targets:
2 | $default:
3 | sources:
4 | - $package$
5 | - lib/**
6 | - pubspec.yaml
7 | - test/**
8 | builders:
9 | json_serializable:
10 | enabled: true
11 | generate_for:
12 | include:
13 | - lib/**
14 | - test/**
15 | options:
16 | any_map: false
17 | checked: false
18 | create_factory: true
19 | create_to_json: true
20 | disallow_unrecognized_keys: false
21 | explicit_to_json: true
22 | field_rename: none
23 | ignore_unannotated: false
24 | include_if_null: true
25 | #nullable: true
26 | freezed:
27 | enabled: true
28 | options:
29 | union_key: type
30 | union_value_case: snake
31 | generate_for:
32 | include:
33 | - lib/**
34 | - test/**
35 | #built_value_generator|built_value:
36 | # enabled: true
37 | # generate_for:
38 | # exclude:
39 | # - test
40 | # include:
41 | # - lib/**
42 | build_web_compilers:entrypoint:
43 | # These are globs for the entrypoints you want to compile.
44 | generate_for:
45 | - test/**.browser_test.dart
46 | - web/**.dart
47 | enabled: true
48 | options:
49 | sound_null_safety: true
50 | compiler: dart2js
51 | # List any dart2js specific args here, or omit it.
52 | dart2js_args:
53 | - -DIS_WEB=true
54 | - -O2
55 | pubspec_generator:
56 | options:
57 | output: lib/src/common/constant/pubspec.yaml.g.dart
58 |
--------------------------------------------------------------------------------
/client/firebase.json:
--------------------------------------------------------------------------------
1 | {
2 | "firestore": {
3 | "rules": "firestore.rules",
4 | "indexes": "firestore.indexes.json"
5 | },
6 | "hosting": {
7 | "public": "build/web",
8 | "ignore": [
9 | "firebase.json",
10 | "**/node_modules/**"
11 | ],
12 | "appAssociation": "AUTO",
13 | "rewrites": [
14 | {
15 | "source": "!/.well-known/assetlinks.json",
16 | "destination": "/index.html"
17 | },
18 | {
19 | "source": "/link/**",
20 | "dynamicLinks": true
21 | },
22 | {
23 | "source": "**",
24 | "destination": "/index.html"
25 | }
26 | ]
27 | },
28 | "emulators": {
29 | "auth": {
30 | "port": 9099
31 | },
32 | "firestore": {
33 | "port": 8080
34 | },
35 | "hosting": {
36 | "port": 5000
37 | },
38 | "ui": {
39 | "enabled": true
40 | }
41 | },
42 | "remoteconfig": {
43 | "template": "remoteconfig.template.json"
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/client/firestore.indexes.json:
--------------------------------------------------------------------------------
1 | {
2 | "indexes": [],
3 | "fieldOverrides": [
4 | {
5 | "collectionGroup": "feed",
6 | "fieldPath": "updated",
7 | "indexes": [
8 | {
9 | "order": "ASCENDING",
10 | "queryScope": "COLLECTION"
11 | },
12 | {
13 | "order": "DESCENDING",
14 | "queryScope": "COLLECTION"
15 | },
16 | {
17 | "arrayConfig": "CONTAINS",
18 | "queryScope": "COLLECTION"
19 | }
20 | ]
21 | }
22 | ]
23 | }
24 |
--------------------------------------------------------------------------------
/client/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/ephemeral/
22 | Flutter/app.flx
23 | Flutter/app.zip
24 | Flutter/flutter_assets/
25 | Flutter/flutter_export_environment.sh
26 | ServiceDefinitions.json
27 | Runner/GeneratedPluginRegistrant.*
28 |
29 | # Exceptions to above rules.
30 | !default.mode1v3
31 | !default.mode2v3
32 | !default.pbxuser
33 | !default.perspectivev3
34 |
--------------------------------------------------------------------------------
/client/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 9.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/client/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/client/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/client/ios/Podfile:
--------------------------------------------------------------------------------
1 | # Uncomment this line to define a global platform for your project
2 | # platform :ios, '9.0'
3 |
4 | # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
5 | ENV['COCOAPODS_DISABLE_STATS'] = 'true'
6 |
7 | project 'Runner', {
8 | 'Debug' => :debug,
9 | 'Profile' => :release,
10 | 'Release' => :release,
11 | }
12 |
13 | def flutter_root
14 | generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
15 | unless File.exist?(generated_xcode_build_settings_path)
16 | raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
17 | end
18 |
19 | File.foreach(generated_xcode_build_settings_path) do |line|
20 | matches = line.match(/FLUTTER_ROOT\=(.*)/)
21 | return matches[1].strip if matches
22 | end
23 | raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
24 | end
25 |
26 | require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
27 |
28 | flutter_ios_podfile_setup
29 |
30 | target 'Runner' do
31 | use_frameworks!
32 | use_modular_headers!
33 |
34 | flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
35 | end
36 |
37 | post_install do |installer|
38 | installer.pods_project.targets.each do |target|
39 | flutter_additional_ios_build_settings(target)
40 | end
41 | end
42 |
--------------------------------------------------------------------------------
/client/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/client/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/client/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/client/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/client/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/client/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/client/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | var window: UIWindow?
7 |
8 | override func application(
9 | _ application: UIApplication,
10 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
11 | ) -> Bool {
12 | FirebaseApp.configure()
13 | GeneratedPluginRegistrant.register(with: self)
14 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/BrandingImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "BrandingImage.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "BrandingImage@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "BrandingImage@3x.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "background.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "LaunchImage.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "LaunchImage@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "LaunchImage@3x.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlugFox/dart-jobs/c16e0e32f4fef35b60c4146e204795cbc569c3e0/client/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/client/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/client/ios/Runner/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/client/ios/Runner/GoogleService-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CLIENT_ID
6 | 174403318860-gaiim23hsprlr34j16amt3evcmg1ov91.apps.googleusercontent.com
7 | REVERSED_CLIENT_ID
8 | com.googleusercontent.apps.174403318860-gaiim23hsprlr34j16amt3evcmg1ov91
9 | ANDROID_CLIENT_ID
10 | 174403318860-8febsjk05jafs4u5ru5te1ilu7aiiv1b.apps.googleusercontent.com
11 | API_KEY
12 | AIzaSyB2U4Hy4d9x7AVo-k1LtMpH01-1ADYKeig
13 | GCM_SENDER_ID
14 | 174403318860
15 | PLIST_VERSION
16 | 1
17 | BUNDLE_ID
18 | dev.plugfox.dartjobs
19 | PROJECT_ID
20 | dart-job
21 | STORAGE_BUCKET
22 | dart-job.appspot.com
23 | IS_ADS_ENABLED
24 |
25 | IS_ANALYTICS_ENABLED
26 |
27 | IS_APPINVITE_ENABLED
28 |
29 | IS_GCM_ENABLED
30 |
31 | IS_SIGNIN_ENABLED
32 |
33 | GOOGLE_APP_ID
34 | 1:174403318860:ios:98002ef72b0503fc8230e9
35 |
36 |
--------------------------------------------------------------------------------
/client/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | Dart Jobs
15 | CFBundleDisplayName
16 | Dart Jobs
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | $(FLUTTER_BUILD_NAME)
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | $(FLUTTER_BUILD_NUMBER)
25 | LSRequiresIPhoneOS
26 |
27 | UILaunchStoryboardName
28 | LaunchScreen
29 | UIMainStoryboardFile
30 | Main
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 | UISupportedInterfaceOrientations~ipad
38 |
39 | UIInterfaceOrientationPortrait
40 | UIInterfaceOrientationPortraitUpsideDown
41 | UIInterfaceOrientationLandscapeLeft
42 | UIInterfaceOrientationLandscapeRight
43 |
44 | UIViewControllerBasedStatusBarAppearance
45 |
46 | UIStatusBarHidden
47 |
48 |
49 |
--------------------------------------------------------------------------------
/client/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/client/l10n.yaml:
--------------------------------------------------------------------------------
1 | arb-dir: lib/src/common/localization
2 | template-arb-file: intl_en.arb
3 | output-localization-file: l10n.dart
--------------------------------------------------------------------------------
/client/lib/runner_stub.dart:
--------------------------------------------------------------------------------
1 | /// Запуск для неизвестной платформы
2 | Future run() => throw UnsupportedError('Unknown host platform');
3 |
--------------------------------------------------------------------------------
/client/lib/runner_web.dart:
--------------------------------------------------------------------------------
1 | // ignore_for_file: unnecessary_lambdas
2 | import 'dart:html' as html;
3 |
4 | import 'package:dart_jobs_client/src/app.dart';
5 | import 'package:flutter_web_plugins/flutter_web_plugins.dart';
6 |
7 | /// Запуск для веба
8 | Future run() {
9 | setUrlStrategy(const HashUrlStrategy());
10 |
11 | // Инициализировать и запустить приложение
12 | return App.initializeAndRun(
13 | onSuccessfulInitialization: (_) {
14 | html.document.getElementsByClassName('loading').toList(growable: false).forEach((element) => element.remove());
15 | },
16 | );
17 | }
18 |
--------------------------------------------------------------------------------
/client/lib/src/common/bloc/app_bloc_observer.dart:
--------------------------------------------------------------------------------
1 | import 'package:bloc_concurrency/bloc_concurrency.dart' as bloc_concurrency;
2 | import 'package:dart_jobs_client/src/common/bloc/platform/app_observer_io.dart'
3 | if (dart.library.html) 'package:dart_jobs_client/src/common/bloc/platform/app_observer_web.dart' as platform;
4 | import 'package:flutter_bloc/flutter_bloc.dart';
5 | import 'package:meta/meta.dart';
6 |
7 | @sealed
8 | abstract class AppBlocObserver {
9 | static BlocObserver get instance => _singleton ??= platform.createBlocObserver();
10 | static BlocObserver? _singleton;
11 | AppBlocObserver._();
12 |
13 | static Future runZoned(Future Function() body) => BlocOverrides.runZoned>(
14 | body,
15 | blocObserver: instance,
16 | eventTransformer: bloc_concurrency.sequential