fix corner cases in lightning address autosuggestions
This commit is contained in:
parent
6516ce9c9e
commit
8f034f0e0a
@ -439,7 +439,8 @@ export function UserSuggest ({
|
||||
|
||||
useEffect(() => {
|
||||
if (query !== undefined) {
|
||||
const q = query?.replace(/^[@ ]+|[ ]+$/g, '')
|
||||
// remove both the leading @ and any @domain after nym
|
||||
const q = query?.replace(/^[@ ]+|[ ]+$/g, '').replace(/@[^\s]*$/, '')
|
||||
if (q === '') {
|
||||
getUsers({ variables: { by: 'stacked', when: 'week', limit: 5 } })
|
||||
} else {
|
||||
@ -516,7 +517,10 @@ export function UserSuggest ({
|
||||
)
|
||||
}
|
||||
|
||||
export function InputUserSuggest ({ label, groupClassName, transformUser, filterUsers, selectWithTab, ...props }) {
|
||||
export function InputUserSuggest ({
|
||||
label, groupClassName, transformUser, filterUsers,
|
||||
selectWithTab, onChange, transformQuery, ...props
|
||||
}) {
|
||||
const [ovalue, setOValue] = useState()
|
||||
const [query, setQuery] = useState()
|
||||
return (
|
||||
@ -525,20 +529,25 @@ export function InputUserSuggest ({ label, groupClassName, transformUser, filter
|
||||
transformUser={transformUser}
|
||||
filterUsers={filterUsers}
|
||||
selectWithTab={selectWithTab}
|
||||
onSelect={setOValue}
|
||||
onSelect={(v) => {
|
||||
// HACK ... ovalue does not trigger onChange
|
||||
onChange && onChange(undefined, { target: { value: v } })
|
||||
setOValue(v)
|
||||
}}
|
||||
query={query}
|
||||
>
|
||||
{({ onKeyDown, resetSuggestions }) => (
|
||||
<InputInner
|
||||
{...props}
|
||||
autoComplete='off'
|
||||
onChange={(_, e) => {
|
||||
onChange={(formik, e) => {
|
||||
onChange && onChange(formik, e)
|
||||
setOValue(e.target.value)
|
||||
setQuery(e.target.value.replace(/^[@ ]+|[ ]+$/g, ''))
|
||||
}}
|
||||
overrideValue={ovalue}
|
||||
onKeyDown={onKeyDown}
|
||||
onBlur={resetSuggestions}
|
||||
onBlur={() => setTimeout(resetSuggestions, 100)}
|
||||
/>
|
||||
)}
|
||||
</UserSuggest>
|
||||
|
@ -311,14 +311,13 @@ export function LnAddrWithdrawal () {
|
||||
let options
|
||||
try {
|
||||
options = await lnAddrOptions(e.target.value)
|
||||
setAddrOptions(options)
|
||||
setFormSchema(lnAddrSchema(options))
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
setAddrOptions(defaultOptions)
|
||||
return
|
||||
setFormSchema(lnAddrSchema())
|
||||
}
|
||||
|
||||
setAddrOptions(options)
|
||||
setFormSchema(lnAddrSchema(options))
|
||||
}, 500, [setAddrOptions, setFormSchema])
|
||||
|
||||
return (
|
||||
@ -358,11 +357,8 @@ export function LnAddrWithdrawal () {
|
||||
transformUser={user => ({ ...user, name: `${user.name}@stacker.news` })}
|
||||
selectWithTab={false}
|
||||
filterUsers={(query) => {
|
||||
if (!query.includes('@')) {
|
||||
return true
|
||||
}
|
||||
const [, domain] = query.split('@')
|
||||
return 'stacker.news'.startsWith(domain)
|
||||
return !domain || 'stacker.news'.startsWith(domain)
|
||||
}}
|
||||
/>
|
||||
<Input
|
||||
|
Loading…
x
Reference in New Issue
Block a user