• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mendersoftware / gui / 988636826

01 Sep 2023 04:04AM UTC coverage: 82.384% (-17.6%) from 99.964%
988636826

Pull #3969

gitlab-ci

web-flow
chore: Bump autoprefixer from 10.4.14 to 10.4.15

Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.14 to 10.4.15.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.14...10.4.15)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Pull Request #3969: chore: Bump autoprefixer from 10.4.14 to 10.4.15

4346 of 6321 branches covered (0.0%)

8259 of 10025 relevant lines covered (82.38%)

192.73 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

95.0
/src/js/components/common/search.js
1
// Copyright 2022 Northern.tech AS
2
//
3
//    Licensed under the Apache License, Version 2.0 (the "License");
4
//    you may not use this file except in compliance with the License.
5
//    You may obtain a copy of the License at
6
//
7
//        http://www.apache.org/licenses/LICENSE-2.0
8
//
9
//    Unless required by applicable law or agreed to in writing, software
10
//    distributed under the License is distributed on an "AS IS" BASIS,
11
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
//    See the License for the specific language governing permissions and
13
//    limitations under the License.
14
import React, { useEffect, useState } from 'react';
15

16
import { Search as SearchIcon } from '@mui/icons-material';
17
import { InputAdornment, TextField } from '@mui/material';
18
import { makeStyles } from 'tss-react/mui';
19

20
import { TIMEOUTS } from '../../constants/appConstants';
21
import { useDebounce } from '../../utils/debouncehook';
22
import Loader from './loader';
23

24
const useStyles = makeStyles()(() => ({
28✔
25
  root: {
26
    input: {
27
      fontSize: '13px'
28
    }
29
  }
30
}));
31

32
const endAdornment = (
33
  <InputAdornment position="end">
6✔
34
    <Loader show small style={{ marginTop: -10 }} />
35
  </InputAdornment>
36
);
37

38
// due to search not working reliably for single letter searches, only start at 2
39
const MINIMUM_SEARCH_LENGTH = 2;
6✔
40

41
const Search = ({ isSearching, onSearch, placeholder = 'Search devices', searchTerm, style = {}, trigger }) => {
6✔
42
  const [searchValue, setSearchValue] = useState('');
459✔
43
  const { classes } = useStyles();
459✔
44

45
  const debouncedSearchTerm = useDebounce(searchValue, TIMEOUTS.debounceDefault);
459✔
46

47
  useEffect(() => {
459✔
48
    if (debouncedSearchTerm.length < MINIMUM_SEARCH_LENGTH) {
11✔
49
      return;
10✔
50
    }
51
    onSearch(debouncedSearchTerm);
1✔
52
  }, [debouncedSearchTerm, onSearch]);
53

54
  useEffect(() => {
459✔
55
    if (!searchTerm) {
11✔
56
      setSearchValue(searchTerm);
9✔
57
    }
58
  }, [searchTerm]);
59

60
  const onSearchUpdated = ({ target: { value } }) => setSearchValue(value);
459✔
61

62
  const onTriggerSearch = ({ key }) => {
459✔
63
    if (key === 'Enter' && (!searchValue || searchValue.length >= MINIMUM_SEARCH_LENGTH)) {
2!
64
      onSearch(searchValue, !trigger);
×
65
    }
66
  };
67

68
  const adornment = isSearching ? { endAdornment } : {};
459✔
69
  return (
459✔
70
    <TextField
71
      className={classes.root}
72
      InputProps={{
73
        startAdornment: (
74
          <InputAdornment position="start">
75
            <SearchIcon color="disabled" fontSize="size" />
76
          </InputAdornment>
77
        ),
78
        ...adornment
79
      }}
80
      onChange={onSearchUpdated}
81
      onKeyPress={onTriggerSearch}
82
      placeholder={placeholder}
83
      size="small"
84
      style={style}
85
      value={searchValue}
86
    />
87
  );
88
};
89

90
export default Search;
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc