Skip to content

Commit

Permalink
Merge pull request #2676 from LD4P/t2628-latin
Browse files Browse the repository at this point in the history
Combines Latin and Latin Extended with more characters
  • Loading branch information
justinlittman authored Oct 12, 2020
2 parents 9b533a9 + bcbaaa4 commit a1d97a1
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 19 deletions.
10 changes: 5 additions & 5 deletions __tests__/feature/editing/editingLiteral.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,23 +101,23 @@ describe('editing a literal property', () => {
expect(input).toHaveValue('Fo')

// Click diacritic button
expect(screen.queryAllByText('Latin Extended')).toHaveLength(0)
expect(screen.queryAllByText('Latin')).toHaveLength(0)
const diacriticBtn = screen.getByTestId('Select diacritics for Uber template1, property4')
fireEvent.click(diacriticBtn)

// Click a diacritic
await screen.findByText('Latin Extended')
fireEvent.change(screen.getByTestId('Select vocabulary'), { target: { value: 'latinextended' } })
await screen.findByText('Latin')
fireEvent.change(screen.getByTestId('Select vocabulary'), { target: { value: 'latin' } })
fireEvent.click(await screen.findByText('ọ'))
expect(input).toHaveValue('Foọ')

// press backspace while the focus is on the diacritic panel and make sure we are still on the edit page
fireEvent.keyDown(await screen.findByText('ọ'), { key: 'Backspace', code: 8, charCode: 8 })
expect(screen.queryAllByText('Latin Extended')).toHaveLength(1)
expect(screen.queryAllByText('Latin')).toHaveLength(1)

// Close it
fireEvent.click(diacriticBtn)
expect(screen.queryAllByText('Latin Extended')).toHaveLength(0)
expect(screen.queryAllByText('Latin')).toHaveLength(0)
}, 15000)

it('allows selecting a language', async () => {
Expand Down
10 changes: 5 additions & 5 deletions __tests__/feature/editing/editingLookup.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -263,23 +263,23 @@ describe('selecting a value from lookup', () => {
expect(input).toHaveValue('Fo')

// Click diacritic button
expect(screen.queryAllByText('Latin Extended')).toHaveLength(0)
expect(screen.queryAllByText('Latin')).toHaveLength(0)
const diacriticBtn = screen.getByTestId('Select diacritics for Instance of (lookup)')
fireEvent.click(diacriticBtn)

// Click a diacritic
await screen.findByText('Latin Extended')
fireEvent.change(screen.getByTestId('Select vocabulary'), { target: { value: 'latinextended' } })
await screen.findByText('Latin')
fireEvent.change(screen.getByTestId('Select vocabulary'), { target: { value: 'latin' } })
fireEvent.click(await screen.findByText('ọ'))
expect(input).toHaveValue('Foọ')

// press backspace while the focus is on the diacritic panel and make sure we are still on the edit page
fireEvent.keyDown(await screen.findByText('ọ'), { key: 'Backspace', code: 8, charCode: 8 })
expect(screen.queryAllByText('Latin Extended')).toHaveLength(1)
expect(screen.queryAllByText('Latin')).toHaveLength(1)

// Close it
fireEvent.click(diacriticBtn)
expect(screen.queryAllByText('Latin Extended')).toHaveLength(0)
expect(screen.queryAllByText('Latin')).toHaveLength(0)
})

it('allows paging', async () => {
Expand Down
9 changes: 7 additions & 2 deletions src/components/editor/diacritics/CharacterButton.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,17 @@ import PropTypes from 'prop-types'
const CharacterButton = (props) => {
const cleanCharacter = () => {
// For some reason, some combining characters are precombined with ◌ (U+25CC)
let cleanChars = ''
if (props.character.length > 1) {
for (let i = 0; i < props.character.length; i++) {
if (props.character.codePointAt(i) !== 9676) return props.character[i]
if (props.character.codePointAt(i) !== 9676) {
cleanChars += props.character[i]
}
}
} else {
cleanChars = props.character
}
return props.character
return cleanChars
}

const handleClick = (event) => {
Expand Down
18 changes: 11 additions & 7 deletions static/specialcharacters.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
{
"latin": {
"characters": ["Á", "á", "À", "à", "Â", "â", "Ä", "ä", "Ã", "ã", "Ǎ", "ǎ", "Ā", "ā", "Ă", "ă", "Ą", "ą", "Å", "å", "Ć", "ć", "Ĉ", "ĉ", "Ç", "ç", "Č", "č", "Ċ", "ċ", "Đ", "đ", "Ď", "ď", "É", "é", "È", "è", "Ê", "ê", "Ë", "ë", "Ě", "ě", "Ē", "ē", "Ĕ", "ĕ", "Ė", "ė", "Ę", "ę", "Ĝ", "ĝ", "Ģ", "ģ", "Ğ", "ğ", "Ġ", "ġ", "Ĥ", "ĥ", "Ħ", "ħ", "Í", "í", "Ì", "ì", "Î", "î", "Ï", "ï", "Ĩ", "ĩ", "Ǐ", "ǐ", "Ī", "ī", "Ĭ", "ĭ", "İ", "ı", "Į", "į", "Ĵ", "ĵ", "Ķ", "ķ", "Ĺ", "ĺ", "Ļ", "ļ", "Ľ", "ľ", "Ł", "ł", "Ń", "ń", "Ñ", "ñ", "Ņ", "ņ", "Ň", "ň", "Ó", "ó", "Ò", "ò", "Ô", "ô", "Ö", "ö", "Õ", "õ", "Ǒ", "ǒ", "Ō", "ō", "Ŏ", "ŏ", "Ǫ", "ǫ", "Ő", "ő", "Ŕ", "ŕ", "Ŗ", "ŗ", "Ř", "ř", "Ś", "ś", "Ŝ", "ŝ", "Ş", "ş", "Š", "š", "Ș", "ș", "Ț", "ț", "Ť", "ť", "Ú", "ú", "Ù", "ù", "Û", "û", "Ü", "ü", "Ũ", "ũ", "Ů", "ů", "Ǔ", "ǔ", "Ū", "ū", "ǖ", "ǘ", "ǚ", "ǜ", "Ŭ", "ŭ", "Ų", "ų", "Ű", "ű", "Ŵ", "ŵ", "Ý", "ý", "Ŷ", "ŷ", "Ÿ", "ÿ", "Ȳ", "ȳ", "Ź", "ź", "Ž", "ž", "Ż", "ż", "Æ", "æ", "Ǣ", "ǣ", "Ø", "ø", "Œ", "œ", "ß", "Ð", "ð", "Þ", "þ", "Ə", "ə"],
"characters": ["Á", "á", "À", "à", "Â", "â", "Ä", "ä", "Ã", "ã", "Ǎ", "ǎ", "Ā", "ā", "Ă", "ă", "Ą", "ą", "Å", "å", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "","Ć", "ć", "Ĉ", "ĉ", "Ç", "ç", "Č", "č", "Ċ", "ċ", "", "", "Đ", "đ", "Ď", "ď", "", "", "", "", "", "", "", "", "", "", "É", "é", "È", "è", "Ê", "ê", "Ë", "ë", "Ě", "ě", "Ē", "ē", "Ĕ", "ĕ", "Ė", "ė", "Ę", "ę",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "ế", "", "", "", "", "", "", "", "","", "","Ĝ", "ĝ", "Ģ", "ģ", "Ğ", "ğ", "Ġ", "ġ", "", "",
"Ĥ", "ĥ", "Ħ", "ħ", "", "", "", "", "", "", "", "", "", "", "","Í", "í", "Ì", "ì", "Î", "î", "Ï", "ï", "Ĩ", "ĩ", "Ǐ", "ǐ", "Ī", "ī", "Ĭ", "ĭ", "İ", "ı", "", "", "", "", "", "", "", "", "Į", "į", "Ĵ", "ĵ", "Ķ", "ķ", "", "", "", "", "", "", "ĸ",
"Ĺ", "ĺ", "Ļ", "ļ", "Ľ", "ľ", "Ł", "ł", "", "", "", "", "", "", "", "", "", "","", "ḿ", "", "", "", "","Ń", "ń", "Ñ", "ñ", "Ņ", "ņ", "Ň", "ň", "", "", "", "", "", "", "", "",
"Ó", "ó", "Ò", "ò", "Ô", "ô", "Ö", "ö", "Õ", "õ", "Ǒ", "ǒ", "Ō", "ō", "Ŏ", "ŏ", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Ǿ", "ǿ", "Ơ", "ơ",
"", "", "", "", "Ǫ", "ǫ", "Ő", "ő", "Ŕ", "ŕ", "Ŗ", "ŗ", "Ř", "ř", "", "", "", "", "", "", "", "", "Ś", "ś", "Ŝ", "ŝ", "Ş", "ş", "Š", "š", "Ș", "ș", "", "", "", "", "", "", "", "", "", "", "", "", "",
"Ț", "ț", "Ť", "ť", "", "", "", "", "", "", "", "", "", "Ú", "ú", "Ù", "ù", "Û", "û", "Ü", "ü", "Ũ", "ũ", "Ů", "ů", "Ǔ", "ǔ", "Ū", "ū", "ǖ", "ǘ", "ǚ", "ǜ", "Ŭ", "ŭ", "Ų", "ų", "Ű", "ű", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Ư", "ư", "Ǖ", "Ǘ", "Ǚ", "Ǜ",
"", "", "", "ṿ", "", "","Ŵ", "ŵ", "", "", "", "", "", "", "", "", "", "", "","", "", "", "","Ý", "ý", "Ŷ", "ŷ", "Ÿ", "ÿ", "Ȳ", "ȳ", "", "", "", "", "", "", "", "", "", "", "", "", "ỿ",
"Ź", "ź", "Ž", "ž", "Ż", "ż", "", "", "", "", "", "", "Æ", "æ", "Ǣ", "Ǽ", "ǽ", "ǣ", "Ø", "ø", "Œ", "œ", "ß", "", "", "Ð", "ð", "Þ", "þ", "Ə", "ə","D͡Z", "G͡H", "I͡A", "I͡E", "I͡G", "I͡N", "I͡O", "I͡Q", "I͡U", "K͡H", "K͡S", "N͡G", "O͡T", "P͡S", "T͡H", "T͡S", "Z͡H",
"d͡z", "g͡h", "i͡a", "i͡e", "i͡g", "i͡n", "i͡o", "i͡q", "i͡u", "j͡n", "k͡h", "k͡s", "n͡g", "o͡t", "p͡s", "t͡h", "t͡s", "z͡h"],
"label": "Latin"
},
"latinextended": {
"characters": [
"Ḁ", "ḁ", "ẚ", "Ạ", "ạ", "Ả", "ả", "Ấ", "ấ", "Ầ", "ầ", "Ẩ", "ẩ", "Ẫ", "ẫ", "Ậ", "ậ", "Ắ", "ắ", "Ằ", "ằ", "Ẳ", "ẳ", "Ẵ", "ẵ", "Ặ", "ặ", "Ḃ", "ḃ", "Ḅ", "ḅ", "Ḇ", "ḇ", "Ḉ", "ḉ", "Ḋ", "ḋ", "Ḍ", "ḍ", "Ḏ", "ḏ", "Ḑ", "ḑ", "Ḓ", "ḓ", "Ḕ", "ḕ", "Ḗ", "ḗ", "Ḙ", "ḙ", "Ḛ", "ḛ", "Ḝ", "ḝ", "Ẹ", "ẹ", "Ẻ", "ẻ", "Ẽ", "ẽ", "Ế", "ế", "Ề", "ề", "Ể", "ể", "Ễ", "ễ", "Ệ", "ệ", "Ḟ", "ḟ", "Ḡ", "ḡ", "Ḣ", "ḣ", "Ḥ", "ḥ", "Ḧ", "ḧ", "Ḩ", "ḩ", "Ḫ", "ḫ", "ẖ", "Ḭ", "ḭ", "Ḯ", "ḯ", "Ỉ", "ỉ", "Ị", "ị", "Ḱ", "ḱ", "Ḳ", "ḳ", "Ḵ", "ḵ", "ĸ", "Ḷ", "ḷ", "Ḹ", "ḹ", "Ḻ", "ḻ", "Ḽ", "ḽ", "Ỻ", "ỻ", "Ḿ", "ḿ", "Ṁ", "ṁ", "Ṃ", "ṃ", "Ṅ", "ṅ", "Ṇ", "ṇ", "Ṉ", "ṉ", "Ṋ", "ṋ", "Ṍ", "ṍ", "Ṏ", "ṏ", "Ṑ", "ṑ", "Ṓ", "ṓ", "Ọ", "ọ", "Ỏ", "ỏ", "Ố", "ố", "Ồ", "ồ", "Ổ", "ổ", "Ỗ", "ỗ", "Ộ", "ộ", "Ớ", "ớ", "Ờ", "ờ", "Ở", "ở", "Ỡ", "ỡ", "Ợ", "ợ", "Ǿ", "ǿ", "Ơ", "ơ", "Ṕ", "ṕ", "Ṗ", "ṗ", "Ṙ", "ṙ", "Ṛ", "ṛ", "Ṝ", "ṝ", "Ṟ", "ṟ", "Ṡ", "ṡ", "ẛ", "Ṣ", "ṣ", "Ṥ", "ṥ", "Ṧ", "ṧ", "Ṩ", "ṩ", "ẜ", "ẝ", "Ṫ", "ṫ", "Ṭ", "ṭ", "Ṯ", "ṯ", "Ṱ", "ṱ", "ẗ", "Ṳ", "ṳ", "Ṵ", "ṵ", "Ṷ", "ṷ", "Ṹ", "ṹ", "Ṻ", "ṻ", "Ụ", "ụ", "Ủ", "ủ", "Ứ", "ứ", "Ừ", "ừ", "Ử", "ử", "Ữ", "ữ", "Ự", "ự", "Ư", "ư", "Ǖ", "Ǘ", "Ǚ", "Ǜ", "Ṽ", "ṽ", "Ṿ", "ṿ", "Ỽ", "ỽ", "Ẁ", "ẁ", "Ẃ", "ẃ", "Ẅ", "ẅ", "Ẇ", "ẇ", "Ẉ", "ẉ", "ẘ", "Ẋ", "ẋ", "Ẍ", "ẍ", "Ẏ", "ẏ", "ẙ", "Ỳ", "ỳ", "Ỵ", "ỵ", "Ỷ", "ỷ", "Ỹ", "ỹ", "Ỿ", "ỿ", "Ẑ", "ẑ", "Ẓ", "ẓ", "Ẕ", "ẕ", "Ǽ", "ǽ", "ẞ", "ẟ"
],
"label": "Latin Extended"
},
"ipa": {
"characters": [
Expand Down

0 comments on commit a1d97a1

Please sign in to comment.