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