with open('lib/screens/catalog_screen.dart', 'r', encoding='utf-8') as f: src = f.read() # 1. Add import import_line = "import '../widgets/external_symbols_browser.dart';\n" if "external_symbols_browser.dart" not in src: src = import_line + src # 2. Add '🌐 Другие символы' to _filters target_filters = """ final List _filters = [ 'Все', '✨ Все системы',""" repl_filters = """ final List _filters = [ 'Все', '🌐 Другие символы', '✨ Все системы',""" assert target_filters in src, "target_filters not found" src = src.replace(target_filters, repl_filters, 1) # 3. Handle '🌐 Другие символы' in count display target_count_display = """ if (_atlasMode == 'words') Padding( padding: const EdgeInsets.fromLTRB(16, 12, 16, 4),""" repl_count_display = """ if (_atlasMode == 'words' && _selectedFilter != '🌐 Другие символы') Padding( padding: const EdgeInsets.fromLTRB(16, 12, 16, 4),""" assert target_count_display in src, "target_count_display not found" src = src.replace(target_count_display, repl_count_display, 1) # 4. Handle '🌐 Другие символы' in body target_body = """ Expanded( child: _atlasMode == 'canon' &&""" repl_body = """ Expanded( child: _selectedFilter == '🌐 Другие символы' ? ExternalSymbolsBrowser(searchQuery: _searchController.text.trim()) : _atlasMode == 'canon' &&""" assert target_body in src, "target_body not found" src = src.replace(target_body, repl_body, 1) with open('lib/screens/catalog_screen.dart', 'w', encoding='utf-8') as f: f.write(src) print("catalog_screen.dart patched successfully!")