Skip to content

Commit c6e159e

Browse files
committed
fix(ui-utils): Generated element ids can't start with a number
fixes INSTUI-1130 Test plan: - Verify that component examples render in IE/Edge Change-Id: Ic3716f61bdd55ea954262f92be3f615e72dc93d5 Reviewed-on: https://gerrit.instructure.com/145992 Reviewed-by: Clay Diffrient <cdiffrient@instructure.com> Product-Review: Jennifer Stern <jstern@instructure.com> QA-Review: Jennifer Stern <jstern@instructure.com> Tested-by: Jenkins
1 parent 15a83d3 commit c6e159e

File tree

31 files changed

+148
-70
lines changed

31 files changed

+148
-70
lines changed

packages/media-capture/src/components/VideoPlayer/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import React, { Component } from 'react'
2525
import PropTypes from 'prop-types'
2626
import themeable from '@instructure/ui-themeable'
27-
import generate from '@instructure/ui-utils/lib/uid'
27+
import generateElementId from '@instructure/ui-utils/lib/dom/generateElementId'
2828

2929
import VideoPlayerControls from './VideoPlayerControls'
3030
import Loading from '../MediaCapture/Loading'
@@ -84,7 +84,7 @@ class VideoPlayer extends Component {
8484
state: PAUSED,
8585
loadingSrc: true,
8686
showControls: true,
87-
videoId: generate()
87+
videoId: generateElementId('VideoPlayer')
8888
}
8989
}
9090

packages/ui-alerts/src/components/Alert/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ import themeable from '@instructure/ui-themeable'
4343
import ThemeablePropTypes from '@instructure/ui-themeable/lib/utils/ThemeablePropTypes'
4444
import deprecated from '@instructure/ui-utils/lib/react/deprecated'
4545
import warning from '@instructure/ui-utils/lib/warning'
46-
import uid from '@instructure/ui-utils/lib/uid'
46+
import generateElementId from '@instructure/ui-utils/lib/dom/generateElementId'
4747

4848
import styles from './styles.css'
4949
import theme from './theme'
@@ -219,7 +219,7 @@ export default class Alert extends Component {
219219
createScreenreaderAlert () {
220220
const liveRegion = this.getLiveRegion()
221221
if (liveRegion) {
222-
this.srid = uid()
222+
this.srid = generateElementId('Alert')
223223

224224
const div = document.createElement('div')
225225
div.setAttribute('id', this.srid)

packages/ui-code-editor/src/components/CodeEditor/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import classnames from 'classnames'
2828

2929
import themeable from '@instructure/ui-themeable'
3030
import ScreenReaderContent from '@instructure/ui-a11y/lib/components/ScreenReaderContent'
31-
import uid from '@instructure/ui-utils/lib/uid'
31+
import generateElementId from '@instructure/ui-utils/lib/dom/generateElementId'
3232
import { omitProps } from '@instructure/ui-utils/lib/react/passthroughProps'
3333
import deprecated from '@instructure/ui-utils/lib/react/deprecated'
3434

@@ -84,7 +84,7 @@ export default class CodeEditor extends Component {
8484

8585
constructor (props) {
8686
super()
87-
this._id = `CodeEditor__${uid()}`
87+
this._id = generateElementId('CodeEditor')
8888

8989
if (props.value === undefined) {
9090
this.state = {

packages/ui-core/src/components/PopoverMenu/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import PropTypes from 'prop-types'
2727

2828
import Popover, { PopoverTrigger, PopoverContent } from '@instructure/ui-overlays/lib/components/Popover'
2929

30-
import uid from '@instructure/ui-utils/lib/uid'
30+
import generateElementId from '@instructure/ui-utils/lib/dom/generateElementId'
3131
import CustomPropTypes from '@instructure/ui-utils/lib/react/CustomPropTypes'
3232
import LayoutPropTypes from '@instructure/ui-layout/lib/utils/LayoutPropTypes'
3333
import { pickProps } from '@instructure/ui-utils/lib/react/passthroughProps'
@@ -113,7 +113,7 @@ export default class PopoverMenu extends Component {
113113
this.state.show = props.defaultShow
114114
}
115115

116-
this.labelId = `PopoverMenu__${uid()}`
116+
this.labelId = generateElementId('PopoverMenu')
117117
this.raf = []
118118
}
119119

packages/ui-core/src/components/Select/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import CustomPropTypes from '@instructure/ui-utils/lib/react/CustomPropTypes'
3232
import { pickProps, omitProps } from '@instructure/ui-utils/lib/react/passthroughProps'
3333
import isActiveElement from '@instructure/ui-utils/lib/dom/isActiveElement'
3434
import IconArrowOpenDown from '@instructure/ui-icons/lib/Solid/IconArrowOpenDown'
35-
import uid from '@instructure/ui-utils/lib/uid'
35+
import generateElementId from '@instructure/ui-utils/lib/dom/generateElementId'
3636
import deprecated, { changedPackageWarning } from '@instructure/ui-utils/lib/react/deprecated'
3737

3838
import FormField from '@instructure/ui-forms/lib/components/FormField'
@@ -101,7 +101,7 @@ class Select extends Component {
101101
constructor (props) {
102102
super()
103103

104-
this._defaultId = `Select__${uid()}`
104+
this._defaultId = generateElementId('Select')
105105
}
106106

107107
get id () {

packages/ui-elements/src/components/Badge/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import themeable from '@instructure/ui-themeable'
3131
import ThemeablePropTypes from '@instructure/ui-themeable/lib/utils/ThemeablePropTypes'
3232
import LayoutPropTypes from '@instructure/ui-layout/lib/utils/LayoutPropTypes'
3333
import safeCloneElement from '@instructure/ui-utils/lib/react/safeCloneElement'
34-
import uid from '@instructure/ui-utils/lib/uid'
34+
import generateElementId from '@instructure/ui-utils/lib/dom/generateElementId'
3535

3636
import styles from './styles.css'
3737
import theme from './theme'
@@ -94,7 +94,7 @@ class Badge extends Component {
9494

9595
constructor (props) {
9696
super(props)
97-
this._defaultId = `Badge__${uid()}`
97+
this._defaultId = generateElementId('Badge')
9898
}
9999

100100
countOverflow () {

packages/ui-elements/src/components/Spinner/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import Container from '@instructure/ui-container/lib/components/Container'
3030
import themeable from '@instructure/ui-themeable'
3131
import Browser from '@instructure/ui-utils/lib/Browser'
3232
import ThemeablePropTypes from '@instructure/ui-themeable/lib/utils/ThemeablePropTypes'
33-
import uid from '@instructure/ui-utils/lib/uid'
33+
import generateElementId from '@instructure/ui-utils/lib/dom/generateElementId'
3434

3535
import styles from './styles.css'
3636
import theme from './theme'
@@ -71,7 +71,7 @@ export default class Spinner extends Component {
7171
constructor (props) {
7272
super()
7373

74-
this.titleId = `Spinner__${uid()}`
74+
this.titleId = generateElementId('Spinner')
7575
}
7676

7777
radius () {

packages/ui-forms/src/components/Checkbox/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import { omitProps } from '@instructure/ui-utils/lib/react/passthroughProps'
3232
import createChainedFunction from '@instructure/ui-utils/lib/createChainedFunction'
3333
import isActiveElement from '@instructure/ui-utils/lib/dom/isActiveElement'
3434
import themeable from '@instructure/ui-themeable'
35-
import uid from '@instructure/ui-utils/lib/uid'
35+
import generateElementId from '@instructure/ui-utils/lib/dom/generateElementId'
3636

3737
import { FormFieldMessages } from '../FormField'
3838
import FormPropTypes from '../../utils/FormPropTypes'
@@ -107,7 +107,7 @@ class Checkbox extends Component {
107107
this.state.checked = !!props.defaultChecked
108108
}
109109

110-
this._defaultId = `Checkbox__${uid()}`
110+
this._defaultId = generateElementId('Checkbox')
111111
}
112112

113113
handleChange = (e) => {

packages/ui-forms/src/components/CheckboxGroup/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import React, { Children, Component } from 'react'
2626
import PropTypes from 'prop-types'
2727

28-
import uid from '@instructure/ui-utils/lib/uid'
28+
import generateElementId from '@instructure/ui-utils/lib/dom/generateElementId'
2929
import CustomPropTypes from '@instructure/ui-utils/lib/react/CustomPropTypes'
3030
import safeCloneElement from '@instructure/ui-utils/lib/react/safeCloneElement'
3131
import { pickProps, omitProps } from '@instructure/ui-utils/lib/react/passthroughProps'
@@ -93,7 +93,7 @@ export default class CheckboxGroup extends Component {
9393
}
9494
}
9595

96-
this._messagesId = `CheckboxGroup__messages-${uid()}`
96+
this._messagesId = generateElementId('CheckboxGroup-messages')
9797
}
9898

9999
get hasMessages () {

packages/ui-forms/src/components/FileDrop/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import classnames from 'classnames'
2929
import Container from '@instructure/ui-container/lib/components/Container'
3030
import themeable from '@instructure/ui-themeable'
3131
import { omitProps } from '@instructure/ui-utils/lib/react/passthroughProps'
32-
import uid from '@instructure/ui-utils/lib/uid'
32+
import generateElementId from '@instructure/ui-utils/lib/dom/generateElementId'
3333

3434
import FormPropTypes from '../../utils/FormPropTypes'
3535
import FormFieldMessages from '../FormField/FormFieldMessages'
@@ -186,8 +186,8 @@ export default class FileDrop extends Component {
186186
constructor (props) {
187187
super(props)
188188

189-
this.defaultId = `FileDrop__${uid()}`
190-
this.messagesId = `FileDrop__messages-${uid()}`
189+
this.defaultId = generateElementId('FileDrop')
190+
this.messagesId = generateElementId('FileDrop-messages')
191191
}
192192

193193
state = {

0 commit comments

Comments
 (0)