Skip to content

Instantly share code, notes, and snippets.

View xsahil03x's full-sized avatar
🤹‍♂️
Working on something awesome

Sahil Kumar xsahil03x

🤹‍♂️
Working on something awesome
View GitHub Profile
@xsahil03x
xsahil03x / attachment_uploader.dart
Created April 14, 2025 12:07
Attachment Uploader
import 'dart:async';
import 'dart:collection';
import 'package:collection/collection.dart';
import 'package:dio/dio.dart';
import 'package:equatable/equatable.dart';
import 'package:logging/logging.dart';
import 'package:rate_limiter/rate_limiter.dart';
import 'package:stream_chat/src/client/channel.dart';
import 'package:stream_chat/src/client/retry_policy.dart';
@xsahil03x
xsahil03x / gradient_box_border.dart
Created January 10, 2025 15:10
GradientBoxBorder
import 'dart:math' as math;
import 'dart:ui' as ui show lerpDouble;
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
const _kDefaultGradient = LinearGradient(colors: [
Color(0xFF000000),
Color(0xFF000000),
]);
@xsahil03x
xsahil03x / code_syntax_highlight_builder.dart
Created December 4, 2024 12:36
CodeSyntaxHighlightBuilder
import 'package:flutter/material.dart';
import 'package:flutter_highlighting/flutter_highlighting.dart';
import 'package:flutter_highlighting/themes/atom-one-dark.dart';
import 'package:flutter_highlighting/themes/atom-one-light.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:highlighting/languages/all.dart';
import 'package:stream_chat_flutter/src/theme/stream_chat_theme.dart';
/// {@template codeSyntaxHighlightBuilder}
/// A builder that highlights code blocks in a markdown body. It uses the
@xsahil03x
xsahil03x / main.dart
Created August 31, 2023 08:47
GoRouter black screen issue.
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
void main() => runApp(const MyApp());
/// The route configuration.
final GoRouter _router = GoRouter(
routes: <RouteBase>[
GoRoute(
@xsahil03x
xsahil03x / main.dart
Last active May 19, 2023 09:30
Aspect Ratio Expands
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
@xsahil03x
xsahil03x / select_value_notifier.dart
Created December 15, 2021 12:21
SelectValueNotifier
class _SelectValueNotifier<R, T> extends ValueNotifier<R> {
_SelectValueNotifier(this.source, this.selector)
: super(selector(source.value)) {
source.addListener(_sourceListener);
}
final ValueNotifier<T> source;
final R Function(T value) selector;
void _sourceListener() => value = selector(source.value);
@xsahil03x
xsahil03x / stream_message_text_field.dart
Last active October 25, 2021 12:03
StreamMessageTextField
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:stream_chat/stream_chat.dart';
class MessageInputController extends ValueNotifier<Message> {
/// Creates a controller for an editable text field.
///
/// This constructor treats a null [message] argument as if it were the empty
@xsahil03x
xsahil03x / counter_button.dart
Created August 30, 2021 19:23
Simple counter button
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:rxdart/rxdart.dart';
typedef CounterEdit = Future<bool> Function(int);
/// Returns true if the [valueBeforeZero] is handled by user.
typedef OnValueZero = Future<bool> Function(int valueBeforeZero);
abstract class EventSyncHelper {
void startSession();
Future<void> sendEvent(Event event);
Future<VoidResult> syncRemainingEvents();
void endSession();
}
class Streamable<T> extends Subject<T> implements ValueStream<T> {
Streamable(this._subject) : super(_subject, _subject);
final BehaviorSubject<T> _subject;
@override
Subject<R> createForwardingSubject<R>({
void Function()? onListen,
void Function()? onCancel,
bool sync = false,