feat(search): add advanced search UI with panel, results list, and SearchScreen rewrite

Phase 4: Desktop UI composables for advanced search.
- Rewrite SearchScreen.kt to use AdvancedSearchBarState with TextFieldValue
- Add AdvancedSearchPanel with kind presets, author chips, date range, hashtags, language
- Add SearchResultsList with sticky headers for People/Notes/Articles/Other sections
- Make QueryParser.parseDateToTimestamp and QuerySerializer.timestampToDate public

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
nrobi144
2026-03-10 12:12:17 +02:00
parent 8265d3f70a
commit 55154dddb2
5 changed files with 978 additions and 227 deletions
@@ -280,7 +280,7 @@ object QueryParser {
)
}
internal fun parseDateToTimestamp(dateStr: String): Long? {
fun parseDateToTimestamp(dateStr: String): Long? {
// ISO 8601 formats: YYYY, YYYY-MM, YYYY-MM-DD
return try {
val parts = dateStr.split("-")
@@ -84,7 +84,7 @@ object QuerySerializer {
return parts.joinToString(" ")
}
internal fun timestampToDate(timestamp: Long): String {
fun timestampToDate(timestamp: Long): String {
// Convert unix timestamp to YYYY-MM-DD
var remaining = timestamp
var year = 1970