mirror of
https://github.com/tabler/tabler.git
synced 2026-08-07 03:42:27 +04:00
f27c70ad38
`Render Modal as real markup` (#2742) reformatted ~140 files back to tabs/semicolons, breaking the Prettier config added by the Astro quality gates (#2749). Re-run prettier --write to restore it, and fix the type errors it had been masking: HTMLElement casts and `this` typing in ChangePasswordModalContent/ConfirmDeleteModalContent scripts, plain-JS syntax in the inline-injected progress.astro script, narrowed prop unions in Button/Check/Spinner, nullable icon svg casts in Icons/Rating, and a duplicate firstLetters/invalid `placeholder` attribute in Select.astro. Also fix shared/vitest.config.mts's stale `astro/lib/**/*.test.ts` include glob left over from the shared source restructure, which made `pnpm test` report zero test files.
58 lines
1.3 KiB
Plaintext
58 lines
1.3 KiB
Plaintext
---
|
|
import Avatar from './Avatar.astro'
|
|
import activity from '@data/activity.json'
|
|
import people from '@data/people.json'
|
|
import { timeagoLabel } from '@shared/lib/pseudo-random'
|
|
|
|
interface Props {
|
|
limit?: number
|
|
}
|
|
|
|
const { limit = 40 } = Astro.props
|
|
|
|
interface Person {
|
|
full_name?: string
|
|
company?: string
|
|
photo?: string
|
|
[key: string]: unknown
|
|
}
|
|
|
|
const items = (activity as { text: string; icon?: string }[]).slice(0, limit).map((item, i) => {
|
|
const index = i + 1 // forloop.index (1-based)
|
|
const person = (people as Person[])[index]
|
|
return {
|
|
person,
|
|
text: item.text
|
|
.split('%p')
|
|
.join(person?.full_name ?? '')
|
|
.split('%c')
|
|
.join(person?.company ?? ''),
|
|
timeago: timeagoLabel(index, 4),
|
|
badge: index < 5,
|
|
}
|
|
})
|
|
---
|
|
|
|
<div class="divide-y">
|
|
{
|
|
items.map((item) => (
|
|
<div>
|
|
<div class="row">
|
|
<div class="col-auto">
|
|
<Avatar person={item.person} />
|
|
</div>
|
|
<div class="col">
|
|
<div class="text-truncate" set:html={item.text} />
|
|
<div class="text-secondary">{item.timeago}</div>
|
|
</div>
|
|
{item.badge && (
|
|
<div class="col-auto align-self-center">
|
|
<div class="badge bg-primary" />
|
|
</div>
|
|
)}
|
|
</div>
|
|
</div>
|
|
))
|
|
}
|
|
</div>
|