123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import 'package:cpt_community/components/comments_dialog.dart';
- import 'package:cs_resources/theme/app_colors_theme.dart';
- import 'package:flutter/cupertino.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter_hooks/flutter_hooks.dart';
- import 'package:flutter_riverpod/flutter_riverpod.dart';
- import 'package:hooks_riverpod/hooks_riverpod.dart';
- import 'package:widgets/ext/ex_widget.dart';
- import 'package:widgets/my_button.dart';
- import 'package:widgets/my_load_image.dart';
- import 'package:widgets/my_text_view.dart';
- enum MyFollowingType {
- isFollowType,
- isFollowerType,
- }
- class MyFollowingListItem extends StatelessWidget {
- final MyFollowingType? itemType;
- bool? hasBottomDriver = true;
- Map<String, dynamic> itemObj;
- void Function(dynamic)? onClickAction;
- MyFollowingListItem({
- super.key,
- required this.itemObj,
- this.itemType = MyFollowingType.isFollowType,
- this.hasBottomDriver=true,
- this.onClickAction
- });
- @override
- Widget build(BuildContext context) {
- return Column(
- children: [
- Container(
- margin: const EdgeInsets.only(left: 15,right: 15,top: 15,bottom: 15),
- child: Row(
- mainAxisSize: MainAxisSize.max,
- children: [
- Expanded(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- MyLoadImage(
- 'https://img1.baidu.com/it/u=2743394743,692629981&fm=253&fmt=auto&app=120&f=JPEG?w=800&h=800',
- width: 65,
- height: 65,
- isCircle: true,
- ),
- MyTextView(
- 'Chin Lan',
- fontSize: 17,
- isFontMedium: true,
- marginLeft: 17,
- )
- ],
- ).onTap((){
- // onClickAction?.call(itemObj);
- }),
- ),
- // _buildIsFollowButton(context),
- HookConsumer(
- builder: (context, ref, child) {
- final isFollow = useState(itemObj['isFollow']);
- return (!isFollow.value)? MyButton(
- text:'+Follow',
- onPressed: (){
- // todo 调用接口 然后更新状态
- isFollow.value = !isFollow.value;
- },
- textColor: context.appColors.textWhite,
- backgroundColor: context.appColors.textPrimary,
- fontSize: 14,
- fontWeight: FontWeight.w400,
- minWidth: 67.5,
- minHeight: 30.5,
- ): const SizedBox.shrink();
- },
- )
- ],
- ),
- ),
- if(hasBottomDriver!)
- Container(
- height: 1,
- color: context.appColors.dividerDefault,
- )
- ],
- );
- }
- }
|