Compare commits

...

2 Commits

Author SHA1 Message Date
c0c3ef2ca0 Fix: shorten name 2024-06-09 14:40:30 +03:00
9335e8e694 fix: some fixes 2024-06-09 12:47:59 +03:00
9 changed files with 84 additions and 87 deletions

View File

@@ -22,6 +22,11 @@ class GymLinkAppBar extends StatelessWidget implements PreferredSizeWidget {
width: 24,
height: 24,
semanticsLabel: 'GymLink Logo',
colorFilter: ColorFilter.mode(
Theme.of(context).brightness == Brightness.dark
? Colors.white
: Colors.black,
BlendMode.srcIn),
),
),
Align(

View File

@@ -129,7 +129,7 @@ class _ExamplePageState extends State<ExamplePage> {
Future<void> _setToken() async {
final token = await getToken('eeb42dcb-8e5b-4f21-825a-3fc7ada43445', '123');
if (token != '') {
context.read<GymLinkProvider>().onTokenReceived(token);
context.read<GymLinkProvider>().checkToken(token);
} else {
context.read<GymLinkProvider>().onError();
}
@@ -205,7 +205,7 @@ class _ExampleClub2PageState extends State<ExampleClub2Page> {
final token = await getToken('a8622a61-3142-487e-8db8-b6aebd4f04aa', '123');
context.read<GymLinkProvider>().changeTheme(0xFFAABCAB);
if (token != '') {
context.read<GymLinkProvider>().onTokenReceived(token);
context.read<GymLinkProvider>().checkToken(token);
} else {
context.read<GymLinkProvider>().onError();
}

View File

@@ -9,6 +9,7 @@ import 'package:gymlink_module_web/providers/cart.dart';
import 'package:gymlink_module_web/tools/items.dart';
import 'package:gymlink_module_web/tools/prefs.dart';
import 'package:gymlink_module_web/tools/routes.dart';
import 'package:gymlink_module_web/tools/text.dart';
import 'package:lazy_load_scrollview/lazy_load_scrollview.dart';
import 'package:provider/provider.dart';
@@ -279,7 +280,7 @@ class _BasketPageState extends State<BasketPage> {
itemBuilder: (context, index) {
final item = cartItems[index];
return BasketItemCard(
name: item.title,
name: shortString(item.title),
price: item.price.toStringAsFixed(2),
id: item.id,
image: Image(

View File

@@ -73,6 +73,7 @@ class _MainPageState extends State<MainPage> {
bool isSearching = false;
List<GymCategory> categories = [];
GymCategory? selectedCategory;
final ScrollController _scrollController = ScrollController();
@override
void initState() {
@@ -122,7 +123,7 @@ class _MainPageState extends State<MainPage> {
});
}
void _onSearch() async {
void _onSearch() {
final categoryId = selectedCategory == null ? '' : selectedCategory!.id;
_searchItems(searchText: searchText, categoryId: categoryId);
}
@@ -250,7 +251,9 @@ class _MainPageState extends State<MainPage> {
onEndOfPage: _onLoad,
isLoading: isLoading,
child: Scrollbar(
controller: _scrollController,
child: ListView(
controller: _scrollController,
children: [
filteredData.isEmpty &&
(searchText != '' || selectedCategory != null) &&

View File

@@ -9,6 +9,7 @@ import 'package:gymlink_module_web/providers/cart.dart';
import 'package:gymlink_module_web/tools/items.dart';
import 'package:gymlink_module_web/tools/prefs.dart';
import 'package:gymlink_module_web/tools/routes.dart';
import 'package:gymlink_module_web/tools/text.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
@@ -113,7 +114,7 @@ class _OrderConfirmationPageState extends State<OrderConfirmationPage> {
itemBuilder: (context, index) {
final item = cartItems[index];
return OrderConfirmItemCard(
name: item.title,
name: shortString(item.title),
image: Image(
image: NetworkImage(item.images[0].url),
width: 50,

View File

@@ -14,17 +14,10 @@ class GymLinkProvider with ChangeNotifier {
void Function() get onError => _onError;
void onTokenReceived(String token) {
void checkToken(String token) {
_token = token;
_isLoading = false;
notifyListeners();
// if (token == 'token123') {
// _isLoading = false;
// notifyListeners();
// } else {
// _isLoading = true;
// notifyListeners();
// }
}
void changeTheme(int color, {bool blackTheme = false}) {

View File

@@ -48,13 +48,13 @@ class MyAppStateWeb extends State<MyApp> {
}
@js.JSExport()
void onTokenReceived(String token) {
context.read<GymLinkProvider>().onTokenReceived(token);
void checkToken(String token) {
context.read<GymLinkProvider>().checkToken(token);
}
@js.JSExport()
void changeColor(int color) {
context.read<GymLinkProvider>().changeTheme(color);
void changeColor(int color, bool blackTheme) {
context.read<GymLinkProvider>().changeTheme(color, blackTheme: blackTheme);
}
@js.JSExport()

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<!--
<head>
<!--
If you are serving your web app in a path other than the root, change the
href value below to reflect the base path you are serving from.
@@ -14,54 +14,55 @@
This is a placeholder for base href that will be replaced by the value of
the `--base-href` argument provided to `flutter build`.
-->
<base href="$FLUTTER_BASE_HREF">
<base href="$FLUTTER_BASE_HREF" />
<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description" content="A new Flutter project.">
<meta charset="UTF-8" />
<meta content="IE=Edge" http-equiv="X-UA-Compatible" />
<meta name="description" content="A new Flutter project." />
<!-- iOS meta tags & icons -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="flutter_application_1">
<link rel="apple-touch-icon" href="icons/Icon-192.png">
<!-- iOS meta tags & icons -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="apple-mobile-web-app-title" content="flutter_application_1" />
<link rel="apple-touch-icon" href="icons/Icon-192.png" />
<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/>
<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png" />
<title>flutter_application_1</title>
<link rel='stylesheet' href='css/styles.css'>
<link rel="manifest" href="manifest.json">
<title>flutter_application_1</title>
<link rel="stylesheet" href="css/styles.css" />
<link rel="manifest" href="manifest.json" />
<!-- <script>
<!-- <script>
// The value below is injected by flutter build, do not touch.
const serviceWorkerVersion = null;
</script> -->
<!-- This script adds the flutter initialization JS code -->
<script src="flutter.js" defer></script>
</head>
<body>
<button id='token'>Token btn</button>
<button id='colorChangeBtnRed'>Color btn Red</button>
<button id='colorChangeBtnBlue'>Color btn Blue</button>
<section class='contents'>
<article>
<div id="flutter_target"></div>
</article>
</section>
<script>
window.addEventListener('load', function(ev) {
let target = document.querySelector('#flutter_target');
_flutter.loader.loadEntrypoint({
onEntrypointLoaded: async function (engineInitializer) {
let appRunner = await engineInitializer.initializeEngine({
hostElement: target,
});
await appRunner.runApp();
}
})
});
</script>
<script src='js/demo-js-interop.js' defer></script>
</body>
<!-- This script adds the flutter initialization JS code -->
<script src="flutter.js" defer></script>
</head>
<body>
<button id="token">Token btn</button>
<button id="token2">Token btn 2</button>
<button id="colorChangeBtnRed">Color btn Red</button>
<button id="colorChangeBtnBlue">Color btn Blue</button>
<section class="contents">
<article>
<div id="flutter_target"></div>
</article>
</section>
<script>
window.addEventListener('load', function (ev) {
let target = document.querySelector('#flutter_target');
_flutter.loader.loadEntrypoint({
onEntrypointLoaded: async function (engineInitializer) {
let appRunner = await engineInitializer.initializeEngine({
hostElement: target,
});
await appRunner.runApp();
},
});
});
</script>
<script src="js/demo-js-interop.js" defer></script>
</body>
</html>

View File

@@ -7,26 +7,22 @@
};
let appState = window._appState;
function getToken() {
fetch(
'http://gymlink.freemyip.com:8080/api/auth/authorize_client',
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
GymKey: 'eeb42dcb-8e5b-4f21-825a-3fc7ada43445', // Just testing token
id: '123',
}),
}
)
function getToken(token) {
fetch('http://gymlink.freemyip.com:8080/api/auth/authorize_client', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
GymKey: token, // Just testing token
id: '123',
}),
})
.then(res => res.json())
.catch(e => {
console.log(e);
setTimeout(getToken, 1000);
})
.then(data => {
if (data.payload)
appState.onTokenReceived(data.payload.token);
if (data.payload) appState.checkToken(data.payload.token);
else {
console.log(data);
setTimeout(getToken, 1000);
@@ -34,31 +30,28 @@
});
}
let btn = document.getElementById('token');
btn.addEventListener('click', getToken);
const btn = document.getElementById('token');
btn.addEventListener('click', () => getToken('eeb42dcb-8e5b-4f21-825a-3fc7ada43445'));
const btn2 = document.getElementById('token2');
btn2.addEventListener('click', () => getToken('a8622a61-3142-487e-8db8-b6aebd4f04aa'));
let colorChangeBtnRed = document.getElementById('colorChangeBtnRed');
colorChangeBtnRed.addEventListener('click', function () {
var hexColor = '#FF0000'
.replace(
/^#?([a-f\d])([a-f\d])([a-f\d])$/i,
(m, r, g, b) => '#ff' + r + r + g + g + b + b
)
.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, (m, r, g, b) => '#ff' + r + r + g + g + b + b)
.substring(1);
var numColor = parseInt(hexColor, 16);
appState.changeColor(numColor);
appState.changeColor(numColor, true);
});
let colorChangeBtnBlue = document.getElementById('colorChangeBtnBlue');
colorChangeBtnBlue.addEventListener('click', function () {
var hexColor = '#0000FF'
.replace(
/^#?([a-f\d])([a-f\d])([a-f\d])$/i,
(m, r, g, b) => '#ff' + r + r + g + g + b + b
)
.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, (m, r, g, b) => '#ff' + r + r + g + g + b + b)
.substring(1);
var numColor = parseInt(hexColor, 16);
appState.changeColor(numColor);
appState.changeColor(numColor, false);
});
function onError() {