Skip to content

Instantly share code, notes, and snippets.

@EsinShadrach
EsinShadrach / levenshtein_distance.dart
Last active March 23, 2025 22:03
If you've ever felt .contains just doens't work for your usecase in dart.
// A string search algorithm that can handle typographical errors and misspellings
// Returns true if there is a match or if strings are similar enough
bool isFound(String string, String search) {
if (search.isEmpty) return true;
final String lowerString = string.toLowerCase();
final String lowerSearch = search.toLowerCase();
// Quick check for exact substring match
if (lowerString.contains(lowerSearch)) return true;
class AnimatedDigit extends StatefulWidget {
final int value;
final TextStyle? style;
const AnimatedDigit({
super.key,
required this.value,
this.style,
});
import "dart:ui";
import "package:flutter/material.dart";
/// Use with ClipRect or ClipRRect if the blur covers everwehre
class AnimatedBlur extends StatefulWidget {
final Widget child;
final double beginBlur;
final double endBlur;
final Duration duration;
import "package:flutter/material.dart";
class DottedBackgroundPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
final paint = Paint()
..color = Colors.white10
..style = PaintingStyle.fill;
double spacing = 10;
enum Length {
millimeter,
centimeter,
meter,
kilometer,
inch,
foot,
yard,
mile,
}
@EsinShadrach
EsinShadrach / api_utils.dart
Last active August 25, 2024 20:20
Handling API calls with status code in flutter
part of "auth/auth.dart";
/// A typedef for a function that deserializes JSON into an object of type [T].
///
/// Example usage:
/// ```dart
/// User userFromJson(Map<String, dynamic> json) => User.fromJson(json);
/// ```
typedef Serializer<T> = T Function(Map<String, dynamic> data);