File tree Expand file tree Collapse file tree 4 files changed +53
-2
lines changed
Expand file tree Collapse file tree 4 files changed +53
-2
lines changed Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ import {
5454 selectProcessing ,
5555 selectRepos ,
5656 selectUpgradable ,
57+ systemFilter ,
5758} from "./packagesSlice" ;
5859
5960import { selectNiceName } from "../device/deviceSlice" ;
@@ -120,6 +121,11 @@ export default function Packages({ adb }) {
120121 dispatch ( repo ( value ) ) ;
121122 } , [ dispatch ] ) ;
122123
124+ const handleCategoryStateChange = useCallback ( ( event ) => {
125+ const value = event . target . value ;
126+ dispatch ( systemFilter ( value === "all" ) ) ;
127+ } , [ dispatch ] ) ;
128+
123129 useEffect ( ( ) => {
124130 if ( ! fetched && fetchedUpgradable ) {
125131 dispatch ( fetchPackages ( adb ) ) ;
@@ -366,6 +372,27 @@ export default function Packages({ adb }) {
366372 </ Select >
367373 </ FormControl >
368374
375+ < FormControl sx = { { width : 120 } } >
376+ < InputLabel id = "package-state-select-label" >
377+ { t ( "labelCategory" ) }
378+ </ InputLabel >
379+
380+ < Select
381+ id = "package-state-select"
382+ label = { t ( "labelCategory" ) }
383+ onChange = { handleCategoryStateChange }
384+ value = { filter . system ? "all" : "all-except-system" }
385+ >
386+ < MenuItem value = "all-except-system" >
387+ { t ( "labelCategoryAllExceptSystem" ) }
388+ </ MenuItem >
389+
390+ < MenuItem value = "all" >
391+ { t ( "labelCategoryAll" ) }
392+ </ MenuItem >
393+ </ Select >
394+ </ FormControl >
395+
369396 < FormControl sx = { { width : 250 } } >
370397 < TextField
371398 defaultValue = { filter . search }
Original file line number Diff line number Diff line change @@ -10,8 +10,9 @@ const initialState = {
1010 upgradable : [ ] ,
1111 filter : {
1212 installed : false ,
13- search : null ,
1413 repo : "fpv-wtf" ,
14+ search : null ,
15+ system : false ,
1516 } ,
1617 fetched : false ,
1718 fetchedUpgradable : false ,
@@ -135,6 +136,13 @@ function filterPackages(packages, filter) {
135136 ( filter . repo === item . repo && ! filter . search )
136137 ) ) ;
137138
139+ // Remove system packages
140+ if ( ! filter . system ) {
141+ filtered = filtered . filter ( ( item ) => (
142+ ! ( item . details . section && item . details . section . includes ( "system" ) )
143+ ) ) ;
144+ }
145+
138146 filtered = filtered . filter ( ( item ) => {
139147 if ( filter . installed ) {
140148 return item . installed ;
@@ -184,6 +192,14 @@ export const packagesSlice = createSlice({
184192
185193 state . filtered = filterPackages ( state . packages , state . filter ) ;
186194 } ,
195+ systemFilter : ( state , event ) => {
196+ state . filter = {
197+ ...state . filter ,
198+ system : event . payload ,
199+ } ;
200+
201+ state . filtered = filterPackages ( state . packages , state . filter ) ;
202+ } ,
187203 processing : ( state , event ) => {
188204 state . processing = event . payload ;
189205 } ,
@@ -265,6 +281,7 @@ export const {
265281 repo,
266282 reset,
267283 search,
284+ systemFilter,
268285} = packagesSlice . actions ;
269286
270287export const selectRepos = ( state ) => state . packages . repos ;
Original file line number Diff line number Diff line change 1515 "version" : " Version" ,
1616 "description" : " Description" ,
1717 "matchCount" : " Found {{count}} packages" ,
18- "visitProjectPage" : " Visit project page"
18+ "visitProjectPage" : " Visit project page" ,
19+ "labelCategory" : " Category" ,
20+ "labelCategoryAllExceptSystem" : " All (except system)" ,
21+ "labelCategoryAll" : " All"
1922}
Original file line number Diff line number Diff line change 11const parsePackageIndex = ( content ) => {
22 const lines = content . split ( "\n" ) ;
3+ const arrays = [ "section" ] ;
34
45 let currentPackage = null ;
56 const packages = { } ;
@@ -16,6 +17,9 @@ const parsePackageIndex = (content) => {
1617 key = key . toLowerCase ( ) ;
1718
1819 packages [ currentPackage ] [ key ] = value ;
20+ if ( arrays . includes ( key ) ) {
21+ packages [ currentPackage ] [ key ] = value . split ( "," ) . map ( ( item ) => item . trim ( ) ) ;
22+ }
1923 }
2024 }
2125
You can’t perform that action at this time.
0 commit comments