Skip to content

Commit 5aa5a99

Browse files
committed
Show "Send via twitter" after quick feedback (in addition to Slack)
[Mobile] Fix quick feedback text alignment
1 parent d88a3c9 commit 5aa5a99

3 files changed

Lines changed: 55 additions & 22 deletions

File tree

landing/src/components/common/QuickFeedbackInput.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ export function QuickFeedbackInput(props: QuickFeedbackInputProps) {
150150
setFeedbackText('')
151151
setPlaceholder('')
152152
})
153-
}, 2000)
153+
}, 3000)
154154
}
155155
}
156156

packages/components/src/components/common/Link.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ export interface LinkProps extends Partial<TouchableProps> {
2727
backgroundThemeColor?: keyof ThemeColors | ((theme: Theme) => string)
2828
enableBackgroundHover?: boolean
2929
enableForegroundHover?: boolean
30-
enableUnderlineHover?: boolean
3130
enableTextWrapper?: boolean
31+
enableUnderlineHover?: boolean
32+
forceOpenOutsideApp?: boolean
3233
hoverBackgroundThemeColor?: keyof ThemeColors | ((theme: Theme) => string)
3334
hoverForegroundThemeColor?: keyof ThemeColors | ((theme: Theme) => string)
3435
href?: string
@@ -47,8 +48,9 @@ export const Link = React.forwardRef<Touchable, LinkProps>((props, ref) => {
4748
backgroundThemeColor,
4849
enableBackgroundHover: _enableBackgroundHover,
4950
enableForegroundHover: _enableForegroundHover,
50-
enableUnderlineHover: _enableUnderlineHover,
5151
enableTextWrapper,
52+
enableUnderlineHover: _enableUnderlineHover,
53+
forceOpenOutsideApp,
5254
hoverBackgroundThemeColor: _hoverBackgroundThemeColor,
5355
hoverForegroundThemeColor: _hoverForegroundThemeColor,
5456
href,
@@ -199,7 +201,8 @@ export const Link = React.forwardRef<Touchable, LinkProps>((props, ref) => {
199201
if (onPress) onPress(e)
200202

201203
if (href) {
202-
if (href.startsWith('http')) Browser.openURL(href)
204+
if (!forceOpenOutsideApp && href.startsWith('http'))
205+
Browser.openURL(href)
203206
else if (!href.startsWith('javascript:')) Linking.openURL(href)
204207
}
205208

packages/components/src/components/common/QuickFeedbackRow.tsx

Lines changed: 48 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export function QuickFeedbackRow(_props: QuickFeedbackRowProps) {
2222
const isMountedRef = useRef(true)
2323

2424
const [feedbackText, setFeedbackText] = useState('')
25-
const [message, setMessage] = useState('')
25+
const [message, setMessage] = useState<React.ReactNode>('')
2626
const [placeholder, setPlaceholder] = useState('')
2727

2828
const appToken = useReduxState(selectors.appTokenSelector)
@@ -115,7 +115,49 @@ export function QuickFeedbackRow(_props: QuickFeedbackRowProps) {
115115
setMessage('Thanks for your feedback!')
116116

117117
setTimeout(() => {
118-
setMessage('Join our Slack to get a response.')
118+
setMessage(
119+
<View
120+
style={[
121+
sharedStyles.flex,
122+
sharedStyles.flexWrap,
123+
sharedStyles.horizontal,
124+
sharedStyles.alignSelfCenter,
125+
sharedStyles.justifyContentCenter,
126+
]}
127+
>
128+
<Link
129+
analyticsLabel="send_feedback_via_twitter"
130+
enableUnderlineHover
131+
forceOpenOutsideApp
132+
href={`https://twitter.com/messages/compose?recipient_id=1013342195087224832&text=${
133+
typeof encodeURIComponent === 'function'
134+
? encodeURIComponent(feedbackText)
135+
: feedbackText
136+
}`}
137+
openOnNewTab
138+
textProps={{
139+
color: 'foregroundColorMuted65',
140+
}}
141+
>
142+
Send via Twitter
143+
</Link>
144+
<ThemedText color="foregroundColorMuted65">{' or '}</ThemedText>
145+
<Link
146+
analyticsLabel="join_slack_after_feedback"
147+
enableUnderlineHover
148+
href={constants.DEVHUB_LINKS.SLACK_INVITATION}
149+
openOnNewTab
150+
textProps={{
151+
color: 'foregroundColorMuted65',
152+
}}
153+
>
154+
join Slack
155+
</Link>
156+
<ThemedText color="foregroundColorMuted65">
157+
{' to get a response.'}
158+
</ThemedText>
159+
</View>,
160+
)
119161

120162
setTimeout(() => {
121163
batch(() => {
@@ -138,7 +180,7 @@ export function QuickFeedbackRow(_props: QuickFeedbackRowProps) {
138180
setFeedbackText('')
139181
setPlaceholder('')
140182
})
141-
}, 2000)
183+
}, 3000)
142184
}
143185
}
144186

@@ -151,27 +193,15 @@ export function QuickFeedbackRow(_props: QuickFeedbackRowProps) {
151193
]}
152194
>
153195
{message ? (
154-
message.toLowerCase().includes('slack') ? (
155-
<Link
156-
analyticsLabel="join_slack_after_feedback"
157-
enableUnderlineHover
158-
href={constants.DEVHUB_LINKS.SLACK_INVITATION}
159-
openOnNewTab
160-
textProps={{
161-
color: 'foregroundColorMuted65',
162-
style: [sharedStyles.flex, sharedStyles.textCenter],
163-
}}
164-
style={sharedStyles.flex}
165-
>
166-
{message}
167-
</Link>
168-
) : (
196+
typeof message === 'string' ? (
169197
<ThemedText
170198
color="foregroundColorMuted65"
171199
style={[sharedStyles.flex, sharedStyles.textCenter]}
172200
>
173201
{message}
174202
</ThemedText>
203+
) : (
204+
message
175205
)
176206
) : (
177207
<ThemedTextInput

0 commit comments

Comments
 (0)