feat: disclose tackle components in catches
This commit is contained in:
@@ -10,11 +10,11 @@ const roleLabels: Record<string, string> = { lure: "Приманка", bait: "Н
|
||||
{catches.map(item => {
|
||||
const timestamp = item.caught_at ?? item.reported_at;
|
||||
return <article>
|
||||
<div><strong>{item.fish}</strong><span class="tackle-label"><TackleGlyph name={item.bait} size={24}/><span>{item.bait ?? "Приманка не указана"}</span></span>{item.fishing_method && <span>Метод: {methodLabels[item.fishing_method] ?? item.fishing_method}</span>}{item.retrieve_method && <span>Проводка: {item.retrieve_method}{item.retrieve_speed != null ? ` · скорость ${item.retrieve_speed}` : ""}</span>}{item.tackle_components?.length > 0 && <span class="catch-components"><strong>Комплект:</strong> {item.tackle_components.map(component => <>{roleLabels[component.role] ?? component.role}: {component.tackle_item_id ? <a href={`/tackle/items/${component.tackle_item_id}`}>{component.raw_value}</a> : component.raw_value}</>)}</span>}<SourceBadge source={item.source_system} href={item.source_url}/></div>
|
||||
<div><strong>{item.fish}</strong><span class="tackle-label"><TackleGlyph name={item.bait} size={24}/><span>{item.bait ?? "Приманка не указана"}</span></span>{item.fishing_method && <span>Метод: {methodLabels[item.fishing_method] ?? item.fishing_method}</span>}{item.retrieve_method && <span>Проводка: {item.retrieve_method}{item.retrieve_speed != null ? ` · скорость ${item.retrieve_speed}` : ""}</span>}{item.tackle_components?.length > 0 && <details class="catch-components"><summary>Комплект снастей ({item.tackle_components.length})</summary><ul>{item.tackle_components.map(component => <li><span>{roleLabels[component.role] ?? component.role}</span>{component.tackle_item_id ? <a href={`/tackle/items/${component.tackle_item_id}`}>{component.raw_value}</a> : <span>{component.raw_value}</span>}</li>)}</ul></details>}<SourceBadge source={item.source_system} href={item.source_url}/></div>
|
||||
<div><strong>{kg(item.weight_g)}</strong><span>{item.player_name ?? "Анонимно"}</span><span>{item.caught_at ? "Время улова" : "Получено · время улова неизвестно"}</span><time datetime={timestamp}>{ago(timestamp)} · {new Date(timestamp).toLocaleString("ru-RU", { timeZone: "UTC" })} UTC</time></div>
|
||||
</article>;
|
||||
})}
|
||||
</div>
|
||||
<style>
|
||||
time{margin-top:7px;color:var(--text-secondary);font-size:10px;font-weight:750}.catch-components{line-height:1.5}.catch-components a{color:inherit;text-underline-offset:3px}
|
||||
time{margin-top:7px;color:var(--text-secondary);font-size:10px;font-weight:750}.catch-components{margin-top:8px}.catch-components summary{cursor:pointer;color:var(--text-secondary);font-size:11px;font-weight:750}.catch-components ul{display:grid;gap:4px;margin:8px 0 0;padding:0;list-style:none;color:var(--text-secondary);font-size:11px}.catch-components li{display:flex;gap:6px;flex-wrap:wrap}.catch-components li span:first-child{color:var(--text-subtle)}.catch-components a{color:inherit;text-underline-offset:3px}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user