# extendify/3.2.2/src/Agent/follow-ups/history.js

Extendify, version 3.2.2. 28 lines.

- Page: https://pluginprobe.com/plugins/extendify/3.2.2/code/src/Agent/follow-ups/history.js
- Raw: https://pluginprobe.com/plugins/extendify/3.2.2/raw/src/Agent/follow-ups/history.js
- Modified: 2026-10-01T15:30:38+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/extendify/3.2.2/code/src/Agent/follow-ups/history.js#L10-L20`.

```javascript
import { create } from 'zustand';
import { persist } from 'zustand/middleware';

const MONTH = 30 * 24 * 60 * 60 * 1000;
export const recent = (at) => Boolean(at) && Date.now() - at < MONTH;

const stamp = (id, fields) => (state) => ({
	cards: { ...state.cards, [id]: { ...state.cards[id], ...fields } },
});

export const useFollowUpHistory = create()(
	persist(
		(set) => ({
			cards: {},
			workflows: {},
			markShown: (id, messageId) =>
				set(stamp(id, { shownAt: Date.now(), shownFor: messageId })),
			markClicked: (id) => set(stamp(id, { clickedAt: Date.now() })),
			markDismissed: (id) => set(stamp(id, { dismissedAt: Date.now() })),
			markDone: (workflowId) =>
				set((state) => ({
					workflows: { ...state.workflows, [workflowId]: Date.now() },
				})),
		}),
		{ name: `extendify-agent-follow-ups-${window.extSharedData.siteId}` },
	),
);

```
