diff --git a/libs/remix-ui/search/src/lib/components/results/ResultItem.tsx b/libs/remix-ui/search/src/lib/components/results/ResultItem.tsx
index e257c4900a..3534321e7e 100644
--- a/libs/remix-ui/search/src/lib/components/results/ResultItem.tsx
+++ b/libs/remix-ui/search/src/lib/components/results/ResultItem.tsx
@@ -18,6 +18,7 @@ export const ResultItem = (props: ResultItemProps) => {
const reloadTimeOut = useRef(null)
const subscribed = useRef(true)
+
useEffect(() => {
reload()
}, [props.file.timeStamp])
@@ -48,7 +49,13 @@ export const ResultItem = (props: ResultItemProps) => {
findText(props.file.filename).then(res => {
if (subscribed.current) {
setLines(res)
- if (res) updateCount(res.length)
+ if (res) {
+ let count = 0
+ res.forEach(line => {
+ count += line.lines.length
+ })
+ updateCount(count, props.file.filename)
+ }
setLoading(false)
disableForceReload(props.file.filename)
}
@@ -71,7 +78,7 @@ export const ResultItem = (props: ResultItemProps) => {
- {lines.length}
+ {props.file.count}
diff --git a/libs/remix-ui/search/src/lib/context/context.tsx b/libs/remix-ui/search/src/lib/context/context.tsx
index 1f7dfe9417..0cc748e6d4 100644
--- a/libs/remix-ui/search/src/lib/context/context.tsx
+++ b/libs/remix-ui/search/src/lib/context/context.tsx
@@ -35,7 +35,7 @@ export interface SearchingStateInterface {
toggleUseRegex: () => void
setReplaceWithoutConfirmation: (value: boolean) => void
disableForceReload: (file: string) => void
- updateCount: (count: number) => void
+ updateCount: (count: number, file: string) => void
}
export const SearchContext = createContext(null)
@@ -135,10 +135,10 @@ export const SearchProvider = ({
payload: file
})
},
- updateCount: (count: number) => {
+ updateCount: (count: number, file: string) => {
dispatch({
type: 'UPDATE_COUNT',
- payload: count
+ payload: {count, file}
})
},
findText: async (path: string) => {
@@ -222,6 +222,7 @@ export const SearchProvider = ({
path: file,
timeStamp: Date.now(),
forceReload: false,
+ count: 0
}
return r
})
diff --git a/libs/remix-ui/search/src/lib/reducers/Reducer.ts b/libs/remix-ui/search/src/lib/reducers/Reducer.ts
index e5f0318bc5..0841b2b424 100644
--- a/libs/remix-ui/search/src/lib/reducers/Reducer.ts
+++ b/libs/remix-ui/search/src/lib/reducers/Reducer.ts
@@ -36,9 +36,19 @@ export const SearchReducer = (state: SearchState = SearchingInitialState, action
count: 0
}
case 'UPDATE_COUNT':
+ const findFile = state.searchResults.find(file => file.filename === action.payload.file)
+ let count = 0
+ if (findFile) {
+ findFile.count = action.payload.count
+ }
+ state.searchResults.forEach(file => {
+ if (file.count) {
+ count += file.count
+ }
+ })
return {
...state,
- count: state.count + parseInt(action.payload)
+ count: count
}
case 'TOGGLE_CASE_SENSITIVE':
return {
diff --git a/libs/remix-ui/search/src/lib/types/index.ts b/libs/remix-ui/search/src/lib/types/index.ts
index 3d7fe96a32..af76487c51 100644
--- a/libs/remix-ui/search/src/lib/types/index.ts
+++ b/libs/remix-ui/search/src/lib/types/index.ts
@@ -32,6 +32,7 @@ export interface SearchResult {
lines: SearchResultLine[],
timeStamp: number,
forceReload: boolean,
+ count: number
}
export interface SearchState {