Use new api pkg APIs

This commit is contained in:
Eric Bailey
2023-10-25 11:57:47 -05:00
parent cc3e992638
commit b78ec89338
4 changed files with 11 additions and 18 deletions
+2 -1
View File
@@ -13,6 +13,7 @@ import {
FontAwesomeIconStyle, FontAwesomeIconStyle,
} from '@fortawesome/react-native-fontawesome' } from '@fortawesome/react-native-fontawesome'
import BottomSheet, {BottomSheetBackdrop} from '@gorhom/bottom-sheet' import BottomSheet, {BottomSheetBackdrop} from '@gorhom/bottom-sheet'
import {sanitizeHashtag} from '@atproto/api'
import {Portal} from 'view/com/util/Portal' import {Portal} from 'view/com/util/Portal'
import {TagsAutocompleteModel} from 'state/models/ui/tags-autocomplete' import {TagsAutocompleteModel} from 'state/models/ui/tags-autocomplete'
@@ -23,7 +24,7 @@ import {useStores} from 'state/index'
import {ActivityIndicator} from 'react-native' import {ActivityIndicator} from 'react-native'
import {TagInputEntryButton} from './TagInputEntryButton' import {TagInputEntryButton} from './TagInputEntryButton'
import {uniq} from 'lib/strings/helpers' import {uniq} from 'lib/strings/helpers'
import {sanitizeHashtag, sanitizeHashtagOnChange} from './util' import {sanitizeHashtagOnChange} from './util'
export function TagInput({ export function TagInput({
max = 8, max = 8,
+2 -1
View File
@@ -13,6 +13,7 @@ import {
FontAwesomeIconStyle, FontAwesomeIconStyle,
} from '@fortawesome/react-native-fontawesome' } from '@fortawesome/react-native-fontawesome'
import {Pin} from 'pind' import {Pin} from 'pind'
import {sanitizeHashtag} from '@atproto/api'
import {isWeb} from 'platform/detection' import {isWeb} from 'platform/detection'
import {TagsAutocompleteModel} from 'state/models/ui/tags-autocomplete' import {TagsAutocompleteModel} from 'state/models/ui/tags-autocomplete'
@@ -23,7 +24,7 @@ import {useStores} from 'state/index'
import {TagInputEntryButton} from './TagInputEntryButton' import {TagInputEntryButton} from './TagInputEntryButton'
import {TextInputFocusEventData} from 'react-native' import {TextInputFocusEventData} from 'react-native'
import {uniq} from 'lib/strings/helpers' import {uniq} from 'lib/strings/helpers'
import {sanitizeHashtag, sanitizeHashtagOnChange} from './util' import {sanitizeHashtagOnChange} from './util'
export function TagInput({ export function TagInput({
max = 8, max = 8,
+5 -14
View File
@@ -1,28 +1,19 @@
import { import {
HASHTAG_INVALID_CHARACTER_REGEX, HASHTAG_INVALID_CHARACTER_REGEX,
TRAILING_PUNCTUATION_REGEX,
LEADING_PUNCTUATION_REGEX, LEADING_PUNCTUATION_REGEX,
LEADING_NUMBER_REGEX, LEADING_NUMBER_REGEX,
LEADING_HASH_REGEX,
} from '@atproto/api' } from '@atproto/api'
/** /**
* Trims leading numbers, all invalid characters, and any trailing punctuation. * Basically `sanitizeHashtag` from `@atproto/api`, but ignores trailing
*/
export function sanitizeHashtag(hashtag: string) {
return hashtag
.replace(LEADING_PUNCTUATION_REGEX, '')
.replace(LEADING_NUMBER_REGEX, '')
.replace(HASHTAG_INVALID_CHARACTER_REGEX, '')
.replace(TRAILING_PUNCTUATION_REGEX, '')
}
/**
* Trims leading numbers and all invalid charactes, but ignores trailing
* punctuation in case the user intends to use `_` or `-`. * punctuation in case the user intends to use `_` or `-`.
*/ */
export function sanitizeHashtagOnChange(hashtag: string) { export function sanitizeHashtagOnChange(hashtag: string) {
return hashtag return hashtag
.replace(LEADING_PUNCTUATION_REGEX, '') .replace(LEADING_HASH_REGEX, '')
.replace(LEADING_NUMBER_REGEX, '') .replace(LEADING_NUMBER_REGEX, '')
.replace(LEADING_PUNCTUATION_REGEX, '')
.replace(HASHTAG_INVALID_CHARACTER_REGEX, '') .replace(HASHTAG_INVALID_CHARACTER_REGEX, '')
.slice(0, 64)
} }
@@ -1,5 +1,5 @@
import { import {
HASHTAG_REGEX_WITH_TRAILING_PUNCTUATION, HASHTAG_WITH_TRAILING_PUNCTUATION_REGEX,
TRAILING_PUNCTUATION_REGEX, TRAILING_PUNCTUATION_REGEX,
LEADING_HASH_REGEX, LEADING_HASH_REGEX,
} from '@atproto/api' } from '@atproto/api'
@@ -31,7 +31,7 @@ export function findSuggestionMatch({
cursorPosition: number cursorPosition: number
}) { }) {
const match = Array.from( const match = Array.from(
text.matchAll(HASHTAG_REGEX_WITH_TRAILING_PUNCTUATION), text.matchAll(HASHTAG_WITH_TRAILING_PUNCTUATION_REGEX),
).pop() ).pop()
if (!match || match.input === undefined || match.index === undefined) { if (!match || match.input === undefined || match.index === undefined) {