From 14a511e3b043052fb543ed36f7fbe807972becd3 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Tue, 29 Oct 2024 13:20:47 +0900 Subject: [PATCH] fix : fix wish toggle error --- lib/screens/products/product_detail_page.dart | 35 ++++++++++--------- pubspec.lock | 24 ++++++------- 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/lib/screens/products/product_detail_page.dart b/lib/screens/products/product_detail_page.dart index 987741c..229835f 100644 --- a/lib/screens/products/product_detail_page.dart +++ b/lib/screens/products/product_detail_page.dart @@ -1,5 +1,4 @@ import 'dart:math'; - import 'package:fl_chart/fl_chart.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -13,7 +12,6 @@ import 'package:saphy/utils/number_format.dart'; import 'package:saphy/utils/textstyles.dart'; import 'package:saphy/models/product.dart'; import 'package:saphy/widgets/normal_button.dart'; -import 'package:shared_preferences/shared_preferences.dart'; class ProductDetail extends StatefulWidget { final Product product; @@ -26,7 +24,6 @@ class ProductDetail extends StatefulWidget { class _ProductDetailState extends State { Product? productDetail; bool isWished = false; - late SharedPreferences wished; @override void initState() { @@ -41,15 +38,12 @@ class _ProductDetailState extends State { Random random = Random(); for (int i = 0; i < 70; i++) { - // 중간까지는 랜덤하게 가격을 올리거나 내림 if (i < 70) { - price += random.nextInt(10000) - 5000; // ±5000 범위에서 변동 + price += random.nextInt(10000) - 5000; } else { - // 마지막 30개 데이터는 가격을 내리기 시작 - price -= random.nextInt(8000); // 0 ~ 8000 범위에서 감소 + price -= random.nextInt(8000); } - // 가격이 음수가 되지 않도록 최소 가격을 80,000으로 설정 price = max(price, 80000); priceData.add(price); } @@ -58,13 +52,22 @@ class _ProductDetailState extends State { } Future initWishes() async { - wished = await SharedPreferences.getInstance(); - final wishedList = wished.getBool(widget.product.id.toString()); - if (wishedList != null) { - setState(() { - isWished = true; - }); - } else {} + String token = await readJwt(); + token = token.toString().split(" ")[2]; + try { + final response = await APIService.instance.request( + 'https://saphy.site/item-wishes?type=ALL', + DioMethod.get, + contentType: 'application/json', + token: "Bearer $token", + ); + final List results = response.data['results']; + if (results.any((item) => item['id'] == productDetail!.id)) { + setState(() { + isWished = true; + }); + } else {} + } catch (e) {} } Future loadProduct() async { @@ -130,7 +133,6 @@ class _ProductDetailState extends State { ); if (response.statusCode == 200) { - await wished.setBool(widget.product.id.toString(), true); setState(() { isWished = true; }); @@ -144,7 +146,6 @@ class _ProductDetailState extends State { ); if (response.statusCode == 200) { - await wished.setBool(widget.product.id.toString(), false); setState(() { isWished = false; // 아이템이 찜 해제 상태로 변경 }); diff --git a/pubspec.lock b/pubspec.lock index e55bf46..3b201cd 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -788,18 +788,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.4" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.3" leak_tracker_testing: dependency: transitive description: @@ -844,18 +844,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.11.1" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.12.0" mime: dependency: "direct main" description: @@ -1201,10 +1201,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.0" toggle_list: dependency: "direct main" description: @@ -1337,10 +1337,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "14.2.1" watcher: dependency: transitive description: