Skip to content

Instantly share code, notes, and snippets.

import 'package:dls_schedule/dls_schedule.dart';
import 'package:dls_schedule/src/presentation/pages/pages.dart';
import 'package:dls_schedule/src/presentation/widgets/widgets.dart';
import 'package:dls_ui_kit/dls_ui_kit.dart';
import 'package:flutter/material.dart';
/// {@template narrow_schedule_widget}
/// Виджет расписания для узких экранов (мобилка, планшет)
/// {@endtemplate}
class NarrowScheduleWidget<T> extends StatelessWidget {
import 'dart:math';
import 'package:flutter/material.dart';
import 'dart:ui' as ui;
const Color darkBlue = Color.fromARGB(255, 18, 32, 47);
const Color background = Colors.white;
const text = 'TEXT\nSHADER';
@CoMatu
CoMatu / screen_util.dart
Created September 19, 2023 11:05 — forked from PlugFox/screen_util.dart
Screen size util
import 'dart:ui' as ui;
import 'package:flutter/widgets.dart';
import 'package:meta/meta.dart';
/// {@macro screen_util}
extension ScreenUtilExtension on BuildContext {
/// Get current screen logical size representation
///
/// phone | <= 600 dp | 4 column
class OfficeLifecycleHandler with WidgetsBindingObserver {
late AppLifecycleState _state;
AuthBloc authBloc;
SharedPreferences sharedPreferences;
AppLifecycleState get state => _state;
OfficeLifecycleHandler({
required this.authBloc,
@CoMatu
CoMatu / ARB files guide
Created April 24, 2023 06:48
гайд по параметрам файлов arb для переводов приложения + фишки по склонениям и так далее
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import 'package:file/file.dart';
import 'package:meta/meta.dart';
import '../test_utils.dart';
@CoMatu
CoMatu / text + chips
Created October 22, 2022 14:23
По мере ввода текста после запятой текст превращается в чипс
import 'package:flutter/material.dart';
const Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
void _showDatePicker(context) async {
Picker(
itemExtent: padding35,
adapter: adapter,
hideHeader: true,
cancelText: 'ОТМЕНА',
cancelTextStyle: Theme.of(context).colorScheme.subtitle2,
confirmText: 'OK',
confirmTextStyle:
Theme.of(context).colorScheme.subtitle2.copyWith(color: Colors.red),
import 'package:flutter/material.dart';
class FlowCreatingNavigatorObserver extends RouteObserver<PageRoute<dynamic>> {
void _sendScreenView(PageRoute<dynamic> route) {
var screenName = route.settings.name;
print('🛍 screenName $screenName');
// do something with it, ie. send it to your analytics service collector
}
"Freezed BLoC 8.0": {
"prefix": "fbloc_8.0",
"body": [
"import 'package:bloc/bloc.dart';",
"import 'package:freezed_annotation/freezed_annotation.dart';",
"import 'package:bloc_concurrency/bloc_concurrency.dart';",
"",
"part '${TM_FILENAME_BASE}.freezed.dart';",
"",
"@freezed",
@CoMatu
CoMatu / gist:154b42ace0d1592a938df0d7a2a21852
Created October 26, 2021 06:11
Множественная форма существительного
String projectsCount(int number) => number < 20
? "singularProject".trPluralParams(
number > 1 && number < 5 ? "someProject" : "pluralProject",
number,
{"number": number.toString()},
)
: "singularProject".trPluralParams(
number % 10 > 1 && number % 10 < 5 ? "someProject" : "pluralProject",
number,
{"number": number.toString()},