Compare commits

..

3 Commits

Author SHA1 Message Date
Yaël Perret
21e798b134 feat : Widget commentaire 2026-05-14 17:23:14 +02:00
Yaël Perret
a812a70b1d fix : Différentes erreurs 2026-05-14 16:05:08 +02:00
Yaël Perret
09219b8ca1 fix : Erreurs dans la sérialisation 2026-05-14 09:30:29 +02:00
22 changed files with 274 additions and 563 deletions

View File

@@ -1 +0,0 @@
{"version":2,"entries":[{"package":"provider","rootUri":"file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/provider-6.1.5+1/","packageUri":"lib/","config":{"name":"provider","issueTracker":"https://github.com/rrousselGit/provider/issues","version":"0.0.1","materialIconCodePoint":"0xe0b1"}},{"package":"bahla_front","rootUri":"../","packageUri":"lib/"}]}

View File

@@ -1,425 +0,0 @@
_fe_analyzer_shared
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/_fe_analyzer_shared-76.0.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/_fe_analyzer_shared-76.0.0/lib/
analyzer
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-6.11.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-6.11.0/lib/
args
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/args-2.6.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/args-2.6.0/lib/
async
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/async-2.13.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/async-2.13.0/lib/
boolean_selector
3.1
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/boolean_selector-2.1.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/boolean_selector-2.1.2/lib/
build
2.19
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/build-2.4.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/build-2.4.1/lib/
build_config
2.14
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/build_config-1.1.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/build_config-1.1.1/lib/
build_daemon
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/build_daemon-4.0.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/build_daemon-4.0.2/lib/
build_resolvers
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/build_resolvers-2.4.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/build_resolvers-2.4.2/lib/
build_runner
3.5
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/build_runner-2.4.13/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/build_runner-2.4.13/lib/
build_runner_core
3.5
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/build_runner_core-7.3.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/build_runner_core-7.3.2/lib/
built_collection
2.12
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/built_collection-5.1.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/built_collection-5.1.1/lib/
built_value
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/built_value-8.9.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/built_value-8.9.2/lib/
characters
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/characters-1.4.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/characters-1.4.0/lib/
checked_yaml
2.19
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/checked_yaml-2.0.3/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/checked_yaml-2.0.3/lib/
clock
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/clock-1.1.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/clock-1.1.2/lib/
code_builder
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/code_builder-4.10.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/code_builder-4.10.0/lib/
collection
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/collection-1.19.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/collection-1.19.1/lib/
convert
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/convert-3.1.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/convert-3.1.2/lib/
crypto
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/crypto-3.0.6/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/crypto-3.0.6/lib/
dart_style
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/dart_style-2.3.7/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/dart_style-2.3.7/lib/
fake_async
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/fake_async-1.3.3/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/fake_async-1.3.3/lib/
ffi
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/ffi-2.1.3/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/ffi-2.1.3/lib/
file
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/file-7.0.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/file-7.0.1/lib/
fixnum
3.1
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/fixnum-1.1.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/fixnum-1.1.1/lib/
flutter_lints
2.19
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_lints-2.0.3/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_lints-2.0.3/lib/
flutter_svg
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_svg-2.0.11/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_svg-2.0.11/lib/
freezed_annotation
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/freezed_annotation-2.4.4/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/freezed_annotation-2.4.4/lib/
frontend_server_client
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/frontend_server_client-4.0.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/frontend_server_client-4.0.0/lib/
get
2.15
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/get-4.6.6/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/get-4.6.6/lib/
get_it
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/get_it-7.7.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/get_it-7.7.0/lib/
glob
2.19
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/glob-2.1.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/glob-2.1.2/lib/
google_fonts
2.14
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/google_fonts-6.2.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/google_fonts-6.2.1/lib/
graphs
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/graphs-2.3.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/graphs-2.3.2/lib/
http
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/http-1.2.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/http-1.2.2/lib/
http_multi_server
2.12
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/http_multi_server-3.2.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/http_multi_server-3.2.1/lib/
http_parser
2.12
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/http_parser-4.0.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/http_parser-4.0.2/lib/
intl
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/intl-0.20.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/intl-0.20.2/lib/
io
2.12
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/io-1.0.4/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/io-1.0.4/lib/
js
3.1
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/js-0.7.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/js-0.7.1/lib/
json_annotation
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/json_annotation-4.9.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/json_annotation-4.9.0/lib/
leak_tracker
3.2
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/leak_tracker-10.0.9/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/leak_tracker-10.0.9/lib/
leak_tracker_flutter_testing
3.2
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9/lib/
leak_tracker_testing
3.2
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/leak_tracker_testing-3.0.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/leak_tracker_testing-3.0.1/lib/
lints
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/lints-2.1.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/lints-2.1.1/lib/
logger
2.12
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/logger-1.4.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/logger-1.4.0/lib/
logging
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/logging-1.3.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/logging-1.3.0/lib/
macros
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/macros-0.1.3-main.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/macros-0.1.3-main.0/lib/
matcher
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/matcher-0.12.17/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/matcher-0.12.17/lib/
material_color_utilities
2.17
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/material_color_utilities-0.11.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/material_color_utilities-0.11.1/lib/
meta
2.12
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/meta-1.16.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/meta-1.16.0/lib/
mime
3.2
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/mime-2.0.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/mime-2.0.0/lib/
mockito
3.1
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/mockito-5.4.4/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/mockito-5.4.4/lib/
nested
2.12
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/nested-1.0.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/nested-1.0.0/lib/
package_config
2.12
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/package_config-2.1.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/package_config-2.1.0/lib/
path
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path-1.9.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path-1.9.1/lib/
path_parsing
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_parsing-1.0.3/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_parsing-1.0.3/lib/
path_provider
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider-2.1.5/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider-2.1.5/lib/
path_provider_android
3.5
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_android-2.2.12/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_android-2.2.12/lib/
path_provider_foundation
3.2
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_foundation-2.4.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_foundation-2.4.0/lib/
path_provider_linux
2.19
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_linux-2.2.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_linux-2.2.1/lib/
path_provider_platform_interface
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/lib/
path_provider_windows
3.2
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_windows-2.3.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/path_provider_windows-2.3.0/lib/
petitparser
3.2
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/petitparser-6.0.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/petitparser-6.0.2/lib/
platform
3.2
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/platform-3.1.6/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/platform-3.1.6/lib/
plugin_platform_interface
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/plugin_platform_interface-2.1.8/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/plugin_platform_interface-2.1.8/lib/
pool
2.12
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/pool-1.5.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/pool-1.5.1/lib/
provider
2.12
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/provider-6.1.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/provider-6.1.2/lib/
pub_semver
2.17
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/pub_semver-2.1.4/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/pub_semver-2.1.4/lib/
pubspec_parse
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/pubspec_parse-1.3.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/pubspec_parse-1.3.0/lib/
recase
2.12
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/recase-4.1.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/recase-4.1.0/lib/
shelf
2.17
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/shelf-1.4.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/shelf-1.4.1/lib/
shelf_web_socket
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/shelf_web_socket-2.0.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/shelf_web_socket-2.0.0/lib/
source_gen
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/source_gen-1.5.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/source_gen-1.5.0/lib/
source_span
3.1
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/source_span-1.10.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/source_span-1.10.1/lib/
stack_trace
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stack_trace-1.12.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stack_trace-1.12.1/lib/
stacked
2.17
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stacked-3.4.3/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stacked-3.4.3/lib/
stacked_generator
2.17
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stacked_generator-1.6.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stacked_generator-1.6.1/lib/
stacked_services
2.15
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stacked_services-1.5.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stacked_services-1.5.1/lib/
stacked_shared
2.16
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stacked_shared-1.4.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stacked_shared-1.4.1/lib/
stream_channel
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stream_channel-2.1.4/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stream_channel-2.1.4/lib/
stream_transform
2.14
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stream_transform-2.1.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/stream_transform-2.1.0/lib/
string_scanner
3.1
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/string_scanner-1.4.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/string_scanner-1.4.1/lib/
term_glyph
3.1
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/term_glyph-1.2.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/term_glyph-1.2.2/lib/
test_api
3.5
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/test_api-0.7.4/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/test_api-0.7.4/lib/
timing
2.14
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/timing-1.0.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/timing-1.0.1/lib/
typed_data
3.5
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/typed_data-1.4.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/typed_data-1.4.0/lib/
universal_io
2.17
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/universal_io-2.2.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/universal_io-2.2.2/lib/
vector_graphics
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics-1.1.12/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics-1.1.12/lib/
vector_graphics_codec
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_codec-1.1.12/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_codec-1.1.12/lib/
vector_graphics_compiler
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_compiler-1.1.12/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_compiler-1.1.12/lib/
vector_math
2.14
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/vector_math-2.1.4/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/vector_math-2.1.4/lib/
vm_service
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/vm_service-15.0.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/vm_service-15.0.0/lib/
watcher
3.0
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/watcher-1.1.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/watcher-1.1.0/lib/
web
3.4
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/web-1.1.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/web-1.1.0/lib/
web_socket
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/web_socket-0.1.6/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/web_socket-0.1.6/lib/
web_socket_channel
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/web_socket_channel-3.0.1/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/web_socket_channel-3.0.1/lib/
xdg_directories
3.3
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/xdg_directories-1.1.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/xdg_directories-1.1.0/lib/
xml
3.2
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/xml-6.5.0/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/xml-6.5.0/lib/
yaml
2.19
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/yaml-3.1.2/
file:///C:/Users/Yael/AppData/Local/Pub/Cache/hosted/pub.dev/yaml-3.1.2/lib/
_macros
3.5
file:///D:/SDK/flutter/bin/cache/dart-sdk/pkg/_macros/
file:///D:/SDK/flutter/bin/cache/dart-sdk/pkg/_macros/lib/
sky_engine
3.7
file:///D:/SDK/flutter/bin/cache/pkg/sky_engine/
file:///D:/SDK/flutter/bin/cache/pkg/sky_engine/lib/
flutter
3.7
file:///D:/SDK/flutter/packages/flutter/
file:///D:/SDK/flutter/packages/flutter/lib/
flutter_localizations
3.7
file:///D:/SDK/flutter/packages/flutter_localizations/
file:///D:/SDK/flutter/packages/flutter_localizations/lib/
flutter_test
3.7
file:///D:/SDK/flutter/packages/flutter_test/
file:///D:/SDK/flutter/packages/flutter_test/lib/
bahla_front
3.0
file:///W:/Dev/Client/Bahla%20Team/bahla_front/
file:///W:/Dev/Client/Bahla%20Team/bahla_front/lib/
2

View File

@@ -21113,6 +21113,7 @@ limitations under the License.
--------------------------------------------------------------------------------
json_annotation
json_serializable
platform
Copyright 2017, the Dart project authors. All rights reserved.
@@ -24303,6 +24304,7 @@ material_color_utilities
--------------------------------------------------------------------------------
mockito
source_helper
Apache License

View File

@@ -13,8 +13,6 @@ import 'package:bahla_front/ui/views/event_details/event_details_view.dart';
MaterialRoute(page: HomeView),
MaterialRoute(page: StartupView),
MaterialRoute(page: MainView),
MaterialRoute(page: HomeView),
MaterialRoute(page: EventDetailsView),
MaterialRoute(page: EventDetailsView),
// @stacked-route
],

View File

@@ -23,10 +23,6 @@ class Routes {
static const mainView = '/main-view';
static const homeView = '/home-view';
static const eventDetailsView = '/event-details-view';
static const eventDetailsView = '/event-details-view';
static const all = <String>{
@@ -51,14 +47,6 @@ class StackedRouter extends _i1.RouterBase {
Routes.mainView,
page: _i4.MainView,
),
_i1.RouteDef(
Routes.homeView,
page: _i2.HomeView,
),
_i1.RouteDef(
Routes.eventDetailsView,
page: _i5.EventDetailsView,
),
_i1.RouteDef(
Routes.eventDetailsView,
page: _i5.EventDetailsView,
@@ -252,39 +240,6 @@ extension NavigatorStateExtension on _i7.NavigationService {
transition: transition);
}
Future<dynamic> navigateToHomeView({
_i6.Key? key,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
}) async {
return navigateTo<dynamic>(Routes.homeView,
arguments: HomeViewArguments(key: key),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> navigateToEventDetailsView({
_i6.Key? key,
required int eventId,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
}) async {
return navigateTo<dynamic>(Routes.eventDetailsView,
arguments: EventDetailsViewArguments(key: key, eventId: eventId),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> navigateToEventDetailsView({
_i6.Key? key,
required int eventId,
@@ -350,39 +305,6 @@ extension NavigatorStateExtension on _i7.NavigationService {
transition: transition);
}
Future<dynamic> replaceWithHomeView({
_i6.Key? key,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
}) async {
return replaceWith<dynamic>(Routes.homeView,
arguments: HomeViewArguments(key: key),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> replaceWithEventDetailsView({
_i6.Key? key,
required int eventId,
int? routerId,
bool preventDuplicates = true,
Map<String, String>? parameters,
Widget Function(BuildContext, Animation<double>, Animation<double>, Widget)?
transition,
}) async {
return replaceWith<dynamic>(Routes.eventDetailsView,
arguments: EventDetailsViewArguments(key: key, eventId: eventId),
id: routerId,
preventDuplicates: preventDuplicates,
parameters: parameters,
transition: transition);
}
Future<dynamic> replaceWithEventDetailsView({
_i6.Key? key,
required int eventId,

20
lib/models/animator.dart Normal file
View File

@@ -0,0 +1,20 @@
import 'package:json_annotation/json_annotation.dart';
part 'animator.g.dart';
@JsonSerializable()
class Animator {
final String id;
final String name;
final String content;
final String authorImageUrl = 'https://placehold.co/400x400/png';
Animator({
required this.id,
required this.name,
required this.content,
});
factory Animator.fromJson(Map<String, dynamic> json) => _$AnimatorFromJson(json);
Map<String, dynamic> toJson() => _$AnimatorToJson(this);
}

View File

@@ -0,0 +1,19 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'animator.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
Animator _$AnimatorFromJson(Map<String, dynamic> json) => Animator(
id: json['id'] as String,
name: json['name'] as String,
content: json['content'] as String,
);
Map<String, dynamic> _$AnimatorToJson(Animator instance) => <String, dynamic>{
'id': instance.id,
'name': instance.name,
'content': instance.content,
};

23
lib/models/comment.dart Normal file
View File

@@ -0,0 +1,23 @@
import 'package:json_annotation/json_annotation.dart';
part 'comment.g.dart';
@JsonSerializable()
class Comment {
final String id;
final String postId;
final String content;
final String authorName;
final String authorImageUrl;
Comment({
required this.id,
required this.postId,
required this.content,
required this.authorName,
required this.authorImageUrl,
});
factory Comment.fromJson(Map<String, dynamic> json) => _$CommentFromJson(json);
Map<String, dynamic> toJson() => _$CommentToJson(this);
}

23
lib/models/comment.g.dart Normal file
View File

@@ -0,0 +1,23 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'comment.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
Comment _$CommentFromJson(Map<String, dynamic> json) => Comment(
id: json['id'] as String,
postId: json['postId'] as String,
content: json['content'] as String,
authorName: json['authorName'] as String,
authorImageUrl: json['authorImageUrl'] as String,
);
Map<String, dynamic> _$CommentToJson(Comment instance) => <String, dynamic>{
'id': instance.id,
'postId': instance.postId,
'content': instance.content,
'authorName': instance.authorName,
'authorImageUrl': instance.authorImageUrl,
};

View File

@@ -20,11 +20,6 @@ class Event {
this.isFavorite = false,
});
@override
String toString() {
return 'Event{name: $name, picture: $picture}';
}
factory Event.fromJson(Map<String, dynamic> json) => _$EventFromJson(json);
Map<String, dynamic> toJson() => _$EventToJson(this);
}

View File

@@ -10,10 +10,10 @@ class NoticeSheet extends StackedView<NoticeSheetModel> {
final Function(SheetResponse)? completer;
final SheetRequest request;
const NoticeSheet({
Key? key,
super.key,
required this.completer,
required this.request,
}) : super(key: key);
});
@override
Widget builder(

View File

@@ -5,13 +5,12 @@ import 'package:flutter/material.dart';
class ReadMoreText extends StatefulWidget {
const ReadMoreText(
this.text, {
Key? key,
super.key,
this.trimLines = 2,
this.collapsedText = '... read more',
this.expandedText = ' read less',
this.textStyle,
}) : assert(text != null),
super(key: key);
}) : assert(text != null);
final String text;
final int trimLines;
@@ -69,7 +68,7 @@ class ReadMoreTextState extends State<ReadMoreText> {
textSize.height,
));
endIndex = textPainter.getOffsetBefore(pos.offset);
var textSpan;
TextSpan textSpan;
if (textPainter.didExceedMaxLines) {
textSpan = TextSpan(
text: _readMore

View File

@@ -14,7 +14,7 @@ class AnimatorWidget extends StatefulWidget {
final double? aspectRatio; // Nouveau paramètre pour le ratio (largeur/hauteur)
const AnimatorWidget({
Key? key,
super.key,
required this.authorName,
required this.authorImageUrl,
this.publishDate,
@@ -26,7 +26,7 @@ class AnimatorWidget extends StatefulWidget {
this.onComment,
this.onShare,
this.aspectRatio, // null = ratio naturel de l'image, ex: 16/9, 4/3, 1/1
}) : super(key: key);
});
@override
State<AnimatorWidget> createState() => _AnimatorWidgetWidgetState();

View File

@@ -0,0 +1,161 @@
import 'package:flutter/material.dart';
class CommentCardWidget extends StatelessWidget {
final String comment;
final String authorName;
final String authorImageUrl;
final DateTime publishDate;
final int likesCount;
final int otherRepliesCount;
final bool isLiked;
final VoidCallback? onLike;
final VoidCallback? onReply;
final VoidCallback? onViewOtherReplies;
const CommentCardWidget({
super.key,
required this.comment,
required this.authorName,
required this.authorImageUrl,
required this.publishDate,
this.likesCount = 0,
this.otherRepliesCount = 0,
this.isLiked = false,
this.onLike,
this.onReply,
this.onViewOtherReplies,
});
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 12.0),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CircleAvatar(
radius: 18,
backgroundImage:
authorImageUrl.isNotEmpty ? NetworkImage(authorImageUrl) : null,
onBackgroundImageError: (_, __) {},
child: authorImageUrl.isEmpty
? const Icon(Icons.person, size: 18)
: null,
),
const SizedBox(width: 10),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Flexible(
child: Text(
_firstName(authorName),
overflow: TextOverflow.ellipsis,
style:
Theme.of(context).textTheme.titleMedium?.copyWith(
fontWeight: FontWeight.w600,
color: Colors.white,
),
),
),
const SizedBox(width: 8),
Text(
_formatDate(publishDate),
style: Theme.of(context).textTheme.bodySmall?.copyWith(
color: Colors.grey,
),
),
],
),
const SizedBox(height: 6),
Text(
comment,
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
color: Colors.white,
height: 1.35,
),
),
const SizedBox(height: 6),
Row(
children: [
TextButton.icon(
onPressed: onLike,
style: TextButton.styleFrom(
padding: const EdgeInsets.symmetric(horizontal: 8),
minimumSize: const Size(0, 32),
tapTargetSize: MaterialTapTargetSize.shrinkWrap,
),
icon: Icon(
isLiked ? Icons.favorite : Icons.favorite_outline,
size: 18,
color: isLiked ? Colors.redAccent : Colors.grey,
),
label: Text(
likesCount > 0 ? '$likesCount' : 'Like',
style: const TextStyle(color: Colors.grey),
),
),
const SizedBox(width: 4),
TextButton(
onPressed: onReply,
style: TextButton.styleFrom(
padding: const EdgeInsets.symmetric(horizontal: 8),
minimumSize: const Size(0, 32),
tapTargetSize: MaterialTapTargetSize.shrinkWrap,
),
child: const Text(
'Répondre',
style: TextStyle(color: Colors.grey),
),
),
],
),
if (otherRepliesCount > 0)
TextButton(
onPressed: onViewOtherReplies,
style: TextButton.styleFrom(
padding: EdgeInsets.zero,
minimumSize: const Size(0, 28),
tapTargetSize: MaterialTapTargetSize.shrinkWrap,
),
child: Text(
'Voir $otherRepliesCount autres réponses',
style: Theme.of(context).textTheme.bodySmall?.copyWith(
color: Colors.blueGrey[200],
fontWeight: FontWeight.w600,
),
),
),
],
),
),
],
),
);
}
String _firstName(String fullName) {
final trimmed = fullName.trim();
if (trimmed.isEmpty) return '';
return trimmed.split(RegExp(r'\s+')).first;
}
String _formatDate(DateTime date) {
final now = DateTime.now();
final difference = now.difference(date);
if (difference.inDays > 7) {
return '${date.day}/${date.month}/${date.year}';
} else if (difference.inDays > 0) {
return '${difference.inDays} jour${difference.inDays > 1 ? 's' : ''}';
} else if (difference.inHours > 0) {
return '${difference.inHours}h';
} else if (difference.inMinutes > 0) {
return '${difference.inMinutes}min';
} else {
return 'À l\'instant';
}
}
}

View File

@@ -15,7 +15,7 @@ class PostCardWidget extends StatelessWidget {
final VoidCallback? onShare;
const PostCardWidget({
Key? key,
super.key,
required this.title,
required this.content,
required this.authorName,
@@ -28,7 +28,7 @@ class PostCardWidget extends StatelessWidget {
this.onLike,
this.onComment,
this.onShare,
}) : super(key: key);
});
@override
Widget build(BuildContext context) {
@@ -109,7 +109,7 @@ class PostCardWidget extends StatelessWidget {
// Images avec boutons d'action si présentes
if (imageUrls != null && imageUrls!.isNotEmpty)
Container(
SizedBox(
//margin: const EdgeInsets.symmetric(vertical: 12.0),
height: 200,
child: Stack(

View File

@@ -18,7 +18,7 @@ class PostCardWidget extends StatefulWidget {
final double? aspectRatio; // Nouveau paramètre pour le ratio (largeur/hauteur)
const PostCardWidget({
Key? key,
super.key,
required this.title,
required this.content,
required this.authorName,
@@ -32,7 +32,7 @@ class PostCardWidget extends StatefulWidget {
this.onComment,
this.onShare,
this.aspectRatio, // null = ratio naturel de l'image, ex: 16/9, 4/3, 1/1
}) : super(key: key);
});
@override
State<PostCardWidget> createState() => _PostCardWidgetState();
@@ -129,7 +129,7 @@ class _PostCardWidgetState extends State<PostCardWidget> {
builder: (context, snapshot) {
final imageHeight = snapshot.data ?? 200.0; // Hauteur par défaut si pas encore calculée
return Container(
return SizedBox(
height: imageHeight,
child: Stack(
children: [

View File

@@ -13,10 +13,10 @@ class InfoAlertDialog extends StackedView<InfoAlertDialogModel> {
final Function(DialogResponse) completer;
const InfoAlertDialog({
Key? key,
super.key,
required this.request,
required this.completer,
}) : super(key: key);
});
@override
Widget builder(

View File

@@ -8,7 +8,7 @@ import 'package:bahla_front/ui/common/post_card_widget.dart';
class EventDetailsView extends StackedView<EventDetailsViewModel> {
final int eventId;
const EventDetailsView({Key? key, required this.eventId}) : super(key: key);
const EventDetailsView({super.key, required this.eventId});
@override
Widget builder(
@@ -32,7 +32,7 @@ class EventDetailsView extends StackedView<EventDetailsViewModel> {
SliverToBoxAdapter(
child: Column(
children: [
Container(
SizedBox(
width: double.infinity,
height: MediaQuery.of(context).size.width * 9 / 16,
child: const Image(
@@ -56,7 +56,7 @@ class EventDetailsView extends StackedView<EventDetailsViewModel> {
),
const SizedBox(height: 16),
Center(
child: Container(
child: SizedBox(
width: MediaQuery.of(context).size.width * 0.8,
child: Table(
columnWidths: const {
@@ -153,7 +153,7 @@ class EventDetailsView extends StackedView<EventDetailsViewModel> {
padding: const EdgeInsets.symmetric(vertical: 4.0),
child: Align(
alignment: Alignment.centerLeft,
child: Container(
child: SizedBox(
width: 40,
height: 40,
child: Image.asset(

View File

@@ -21,28 +21,3 @@ class EventDetailsViewModel extends BaseViewModel {
}
}
class Post {
final String id;
final String title;
final String content;
Post({
required this.id,
required this.title,
required this.content,
});
}
class Animator {
final String id;
final String name;
final String content;
final String authorImageUrl = 'https://placehold.co/400x400/png';
Animator({
required this.id,
required this.name,
required this.content,
});
}

View File

@@ -5,7 +5,7 @@ import 'package:intl/intl.dart';
import 'home_viewmodel.dart';
class HomeView extends StackedView<HomeViewModel> {
const HomeView({Key? key}) : super(key: key);
const HomeView({super.key});
@override
Widget builder(
@@ -14,7 +14,7 @@ class HomeView extends StackedView<HomeViewModel> {
Widget? child,
) {
return Scaffold(
backgroundColor: Theme.of(context).colorScheme.background,
backgroundColor: Theme.of(context).colorScheme.surface,
body: ListView.builder(
itemCount: viewModel.events.length,
itemBuilder: (context, index) {

View File

@@ -7,7 +7,7 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'main_viewmodel.dart';
class MainView extends StackedView<MainViewModel> {
const MainView({Key? key}) : super(key: key);
const MainView({super.key});
@override
Widget builder(
@@ -30,7 +30,7 @@ class MainView extends StackedView<MainViewModel> {
],
),
centerTitle: false,
backgroundColor: Theme.of(context).colorScheme.background,
backgroundColor: Theme.of(context).colorScheme.surface,
shape: Border(
bottom: BorderSide(
color: Theme.of(context).colorScheme.outline,
@@ -38,10 +38,10 @@ class MainView extends StackedView<MainViewModel> {
),
),
),
backgroundColor: Theme.of(context).colorScheme.background,
backgroundColor: Theme.of(context).colorScheme.surface,
bottomNavigationBar: BottomNavigationBar(
type: BottomNavigationBarType.fixed,
backgroundColor: Theme.of(context).colorScheme.background,
backgroundColor: Theme.of(context).colorScheme.surface,
currentIndex: viewModel.currentIndex,
onTap: viewModel.setIndex,
showSelectedLabels: false,

View File

@@ -6,7 +6,7 @@ import 'package:bahla_front/ui/common/ui_helpers.dart';
import 'startup_viewmodel.dart';
class StartupView extends StackedView<StartupViewModel> {
const StartupView({Key? key}) : super(key: key);
const StartupView({super.key});
@override
Widget builder(