Skip to content

Instantly share code, notes, and snippets.

@davidmigloz
Created January 15, 2025 10:37
Show Gist options
  • Save davidmigloz/c95f0a36ceb2b7bca08c6b7a0b223929 to your computer and use it in GitHub Desktop.
Save davidmigloz/c95f0a36ceb2b7bca08c6b7a0b223929 to your computer and use it in GitHub Desktop.
Generated code from pixels2flutter.dev
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Board App',
theme: ThemeData(
useMaterial3: true,
),
home: const BoardScreen(),
);
}
}
class BoardScreen extends StatefulWidget {
const BoardScreen({super.key});
@override
_BoardScreenState createState() => _BoardScreenState();
}
class _BoardScreenState extends State<BoardScreen> {
final List<Map<String, String>> backlogItems = [
{'date': 'Draft', 'title': 'Use case: chatbot'},
{'date': 'Draft', 'title': 'Use case: extraction'},
{'date': 'Draft', 'title': 'LLMs'},
{'date': 'Draft', 'title': 'Tools'},
{'date': 'langchain_dart #71', 'title': 'Add support for GoogleDriveLoader'},
{'date': 'langchain_dart #9', 'title': 'Add support for FewShotPromptTemplate class'},
];
final List<Map<String, String>> plannedItems = [
{'date': 'langchain_dart #387', 'title': 'Add support for RunnableWithMessageHistory'},
{'date': 'langchain_dart #266', 'title': 'Runnable support missing pieces'},
{'date': 'langchain_dart #432', 'title': 'Add mediapipe_genai integration'},
{'date': 'langchain_dart #431', 'title': 'Implement .withStructuredOutput API'},
{'date': 'langchain_dart #101', 'title': 'Integrate pgvector vector store'},
{'date': 'langchain_dart #314', 'title': 'Add Cohere integration'},
];
final List<Map<String, String>> inProgressItems = [
{'date': 'Draft', 'title': 'Add example of ReAct agent from scratch'},
{'date': 'langchain_dart #287', 'title': 'LangGraph'},
{'date': 'langchain_dart #60', 'title': 'Add support for FirestoreChatMessageHistory'},
{'date': 'langchain_dart #487', 'title': 'Ideas for articles about LangChain.dart'},
{'date': 'langchain_dart #468', 'title': 'Migrate docs from docsfiy to docusaurus'},
{'date': 'langchain_dart #516', 'title': 'Add support for new integrations'},
];
String searchQuery = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Board'),
),
body: Column(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: TextField(
decoration: const InputDecoration(
labelText: 'Filter by keyword or by field',
border: OutlineInputBorder(),
),
onChanged: (value) {
setState(() {
searchQuery = value.toLowerCase();
});
},
),
),
Expanded(
child: Row(
children: [
buildColumn('Backlog', backlogItems),
buildColumn('Planned', plannedItems),
buildColumn('In Progress', inProgressItems),
],
),
),
],
),
);
}
Widget buildColumn(String title, List<Map<String, String>> items) {
final filteredItems = items
.where((item) =>
item['title']!.toLowerCase().contains(searchQuery) ||
item['date']!.toLowerCase().contains(searchQuery))
.toList();
return Expanded(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
title,
style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
),
const SizedBox(height: 8),
Expanded(
child: ListView.builder(
itemCount: filteredItems.length,
itemBuilder: (context, index) {
final item = filteredItems[index];
return Card(
child: ListTile(
title: Text(item['title']!),
subtitle: Text(item['date']!),
),
);
},
),
),
],
),
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment