Merge pull request 'responsive_home' (#20) from responsive_home into main

Reviewed-on: https://repo.ravanertebat.com/TM/tm_app/pulls/20
This commit is contained in:
a.ghabeli
2025-08-09 08:32:53 +03:30
18 changed files with 666 additions and 213 deletions
+35
View File
@@ -0,0 +1,35 @@
import 'package:flutter/material.dart';
enum DisplaySize {
extraSmall, //mobile
small, //tablet
medium, //laptop
large, //desktop
}
extension DisplaySizeDetector on Size {
DisplaySize get displaySize {
if (width < 600) {
return DisplaySize.extraSmall;
} else if (width < 1024) {
return DisplaySize.small;
} else if (width < 1440) {
return DisplaySize.medium;
} else {
return DisplaySize.large;
}
}
String get displaySizeName {
switch (displaySize) {
case DisplaySize.extraSmall:
return 'Mobile';
case DisplaySize.small:
return 'Tablet';
case DisplaySize.medium:
return 'Laptop';
case DisplaySize.large:
return 'Desktop';
}
}
}
+19 -2
View File
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:tm_app/core/utils/breakpoints.dart';
class SizeConfig {
static double screenWidth = 0.0;
@@ -14,15 +15,31 @@ class SizeConfig {
extension SizeDoubleExt on double {
double h() {
final displaySize =
Size(SizeConfig.screenWidth, SizeConfig.screenHeight).displaySize;
final double screenHeight = SizeConfig.screenHeight;
final double res = (this / 917.0) * screenHeight;
return res;
if (displaySize == DisplaySize.extraSmall
// displaySize == DisplaySize.small
) {
return res;
} else {
return this;
}
}
double w() {
final displaySize =
Size(SizeConfig.screenWidth, SizeConfig.screenHeight).displaySize;
final double screenWidth = SizeConfig.screenWidth;
final double res = (this / 412.0) * screenWidth;
return res;
if (displaySize == DisplaySize.extraSmall
// displaySize == DisplaySize.small
) {
return res;
} else {
return this;
}
}
double sp() {