import 'package:flutter/material.dart';

/// Flutter code sample for [TabBar].

void main() => runApp(const TabBarApp());

class TabBarApp extends StatelessWidget {
  const TabBarApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context) {
    double screenWidth = MediaQuery.of(context).size.width;

    return Scaffold(
      endDrawer: Container(
        width: screenWidth / 2,
        color: Colors.lightBlueAccent,
      ),
      appBar: AppBar(
        leading: IconButton(
          icon: Icon(Icons.arrow_back_ios),
          onPressed: () {
            print("클릭됨");
          },
        ),
      ),
      body: Column(
        children: [
          Padding(
            padding: const EdgeInsets.all(16.0),
            child: ProfileHeader(),
          ),
          Padding(
            padding: const EdgeInsets.all(16.0),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceAround,
              children: [
                _info("50", "Posts"),
                _line(),
                _info("10", "Likes"),
                _line(),
                _info("3", "Share"),
              ],
            ),
          ),
          ProfileTab(),
        ],
      ),
    );
  }

  Container _line() {
    return Container(
      width: 1,
      height: 60,
      color: Colors.black,
    );
  }

  Column _info(String count, String title) {
    return Column(
      children: [
        Text("$count", style: TextStyle(fontSize: 15)),
        SizedBox(height: 2),
        Text("$title", style: TextStyle(fontSize: 15)),
      ],
    );
  }
}

class ProfileTab extends StatelessWidget {
  const ProfileTab({
    super.key,
  });

  @override
  Widget build(BuildContext context) {
    return Expanded(
      child: DefaultTabController(
        length: 2,
        child: Column(
          children: [
            TabBar(
              tabs: [
                Tab(icon: Icon(Icons.car_crash)),
                Tab(icon: Icon(Icons.car_repair)),
              ],
            ),
            Expanded(
              child: TabBarView(
                children: [
                  GridView.builder(
                    itemCount: 50,
                    gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                      crossAxisCount: 3,
                      crossAxisSpacing: 10,
                      mainAxisSpacing: 10,
                    ),
                    itemBuilder: (context, index) {
                      print("인덱스 번호 : $index");
                      return Image.network(
                          "<https://picsum.photos/id/$>{151 + index}/200/200");
                    },
                  ),
                  Container(color: Colors.blue),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}

class ProfileHeader extends StatelessWidget {
  const ProfileHeader({
    super.key,
  });

  @override
  Widget build(BuildContext context) {
    return Row(
      children: [
        SizedBox(
          width: 100,
          height: 100,
          child: CircleAvatar(
            backgroundImage:
                NetworkImage("<https://picsum.photos/id/200/200/200>"),
          ),
        ),
        SizedBox(width: 10),
        Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [Text("삼성중공업"), Text("IT 프로그래머"), Text("프로그래머/직원/연구원")],
        )
      ],
    );
  }
}