feat: depreciate timeago

This commit is contained in:
Udhay-Adithya
2025-08-07 13:04:22 +05:30
parent 1dece55482
commit b3e0411b4a
5 changed files with 41 additions and 56 deletions

View File

@@ -1,5 +1,22 @@
const kEmpty = '';
enum OAuth2Field {
authorizationUrl,
accessTokenUrl,
clientId,
clientSecret,
redirectUrl,
scope,
state,
codeChallengeMethod,
username,
password,
refreshToken,
identityToken,
accessToken,
clearSession,
}
// API Key Auth
const kApiKeyHeaderName = 'x-api-key';
const kAddToLocations = [

View File

@@ -8,9 +8,9 @@ import 'package:apidash_core/apidash_core.dart';
import 'package:apidash_design_system/apidash_design_system.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:timeago/timeago.dart' as timeago;
import '../common_widgets.dart';
import 'consts.dart';
import 'utils.dart';
class OAuth2Fields extends ConsumerStatefulWidget {
final AuthModel? authData;
@@ -375,7 +375,7 @@ class _OAuth2FieldsState extends ConsumerState<OAuth2Fields> {
if (_tokenExpiration != null) ...[
const SizedBox(height: 4),
Text(
_getExpirationText(),
getExpirationText(_tokenExpiration),
style: Theme.of(context).textTheme.bodySmall?.copyWith(
color: _tokenExpiration!.isBefore(DateTime.now())
? Theme.of(context).colorScheme.error
@@ -482,49 +482,4 @@ class _OAuth2FieldsState extends ConsumerState<OAuth2Fields> {
_tokenExpiration = null;
});
}
String _getExpirationText() {
if (_tokenExpiration == null) {
return "";
}
final now = DateTime.now();
if (_tokenExpiration!.isBefore(now)) {
return "Token expired ${timeago.format(_tokenExpiration!, clock: now)}";
} else {
// For future times, we want to show "in X hours" instead of "X hours from now"
final duration = _tokenExpiration!.difference(now);
if (duration.inDays > 0) {
return "Token expires in ${duration.inDays} day${duration.inDays > 1 ? 's' : ''}";
} else if (duration.inHours > 0) {
return "Token expires in ${duration.inHours} hour${duration.inHours > 1 ? 's' : ''}";
} else if (duration.inMinutes > 0) {
return "Token expires in ${duration.inMinutes} minute${duration.inMinutes > 1 ? 's' : ''}";
} else {
return "Token expires in less than a minute";
}
}
}
@override
void dispose() {
super.dispose();
}
}
enum OAuth2Field {
authorizationUrl,
accessTokenUrl,
clientId,
clientSecret,
redirectUrl,
scope,
state,
codeChallengeMethod,
username,
password,
refreshToken,
identityToken,
accessToken,
clearSession,
}

View File

@@ -0,0 +1,22 @@
String getExpirationText(DateTime? tokenExpiration) {
if (tokenExpiration == null) {
return "";
}
final now = DateTime.now();
if (tokenExpiration.isBefore(now)) {
return "Token expired";
} else {
// For future times, we want to show "in X hours" instead of "X hours from now"
final duration = tokenExpiration.difference(now);
if (duration.inDays > 0) {
return "Token expires in ${duration.inDays} day${duration.inDays > 1 ? 's' : ''}";
} else if (duration.inHours > 0) {
return "Token expires in ${duration.inHours} hour${duration.inHours > 1 ? 's' : ''}";
} else if (duration.inMinutes > 0) {
return "Token expires in ${duration.inMinutes} minute${duration.inMinutes > 1 ? 's' : ''}";
} else {
return "Token expires in less than a minute";
}
}
}

View File

@@ -1770,14 +1770,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.5"
timeago:
dependency: "direct main"
description:
name: timeago
sha256: b05159406a97e1cbb2b9ee4faa9fb096fe0e2dfcd8b08fcd2a00553450d3422e
url: "https://pub.dev"
source: hosted
version: "3.7.1"
timing:
dependency: transitive
description:

View File

@@ -64,7 +64,6 @@ dependencies:
scrollable_positioned_list: ^0.3.8
share_plus: ^10.1.4
shared_preferences: ^2.5.2
timeago: ^3.7.0
url_launcher: ^6.2.5
uuid: ^4.5.0
vector_graphics_compiler: ^1.1.9+1