Skip to content

Commit

Permalink
Merge branch 'master' into miniflare-jest-env
Browse files Browse the repository at this point in the history
  • Loading branch information
jrhender committed Jul 28, 2023
2 parents 040edbd + 1bc5b68 commit bf0995b
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 6 deletions.
5 changes: 3 additions & 2 deletions app/routes/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
useLoaderData,
useSearchParams,
} from '@remix-run/react'
import {loadInitialQuestions, QuestionState} from '~/server-utils/stampy'
import {loadInitialQuestions, loadTags, QuestionState} from '~/server-utils/stampy'
import {TOP} from '~/hooks/stateModifiers'
import useQuestionStateInUrl from '~/hooks/useQuestionStateInUrl'
import useDraggable from '~/hooks/useDraggable'
Expand All @@ -22,6 +22,7 @@ import {reloadInBackgroundIfNeeded} from '~/server-utils/kv-cache'

export const loader = async ({request}: Parameters<LoaderFunction>[0]) => {
try {
await loadTags(request)
const initialQuestionsData = await loadInitialQuestions(request)
return {initialQuestionsData}
} catch (e) {
Expand Down Expand Up @@ -131,7 +132,7 @@ export default function App() {
}
// The AutoHeight component doesn't notice when a random <div> changes CSS class,
// so manually triggering toggle event (as if this was a <details> element).
dispatchEvent(new Event('toggle'))
document.dispatchEvent(new Event('toggle'))
}

const handleSpecialLinks = (e: MouseEvent) => {
Expand Down
15 changes: 13 additions & 2 deletions app/routes/questions/actions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -94,11 +94,22 @@ export const Action = ({pageid, actionType, children, ...props}: Props) => {
// will result in each action only being allowed once per browser
const actionId = `${pageid}-${actionType}`
const [actionTaken, setActionTaken] = useState(false)
const loadActionTaken = useCallback(() => localStorage.getItem(actionId) === 'true', [actionId])
const loadActionTaken = useCallback(() => {
try {
return localStorage.getItem(actionId) === 'true'
} catch (e) {
// This will happen when local storage is disabled
return false
}
}, [actionId])
useEffect(() => setActionTaken(loadActionTaken()), [loadActionTaken])
useEffect(() => {
if (loadActionTaken() || actionTaken) {
localStorage.setItem(actionId, actionTaken.toString())
try {
localStorage.setItem(actionId, actionTaken.toString())
} catch (e) {
// This will happen when local storage is disabled
}
}
}, [actionTaken, loadActionTaken, actionId])

Expand Down
9 changes: 7 additions & 2 deletions app/server-utils/stampy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ const GLOSSARY_TABLE = 'grid-_pSzs23jmw'

const enc = encodeURIComponent
const quote = (x: string) => encodeURIComponent(`"${x.replace(/"/g, '\\"')}"`)
let allTags = {} as Record<string, Tag>

const sendToCoda = async (
url: string,
Expand Down Expand Up @@ -242,7 +243,9 @@ const convertToQuestion = ({name, values, updatedAt} = {} as AnswersRow): Questi
pageid: extractText(values['UI ID']),
text: renderText(extractText(values['UI ID']), values['Rich Text']),
answerEditLink: extractLink(values['Edit Answer']).replace(/\?.*$/, ''),
tags: ((values['Tags'] || []) as Entity[]).map((e) => e.name),
tags: ((values['Tags'] || []) as Entity[])
.map((e) => e.name)
.filter((name) => Object.prototype.hasOwnProperty.call(allTags, name)),
relatedQuestions:
values['Related Answers'] && values['Related IDs']
? values['Related Answers'].map(({name}, i) => ({
Expand Down Expand Up @@ -345,7 +348,9 @@ export const loadTags = withCache('tags', async (): Promise<Tag[]> => {
.filter((q) => q.status == QuestionStatus.LIVE_ON_SITE)
.map((q) => [q.title, q.pageid])
)
return rows.map((r) => toTag(r, nameToId))
const tags = rows.map((r) => toTag(r, nameToId))
allTags = Object.fromEntries(tags.map((r) => [r.name, r])) as Record<string, Tag>
return tags
})

export const loadMoreAnswerDetails = withCache(
Expand Down

0 comments on commit bf0995b

Please sign in to comment.