Files
LangBot/web/tests/revisions/preview.tsx
T
RockChinQandClaude Opus 5.5 16cfb6f8bd feat(cloud): show purchased plan revision alongside the latest revision
- Expose the workspace's purchased plan revision from the entitlement
  snapshot.
- Stack the purchased revision card in front of the latest revision in
  the plan comparison dialog; both cards share the same layout, and the
  purchased card's copy and prices come from the Space revision endpoint
  while benefits stay on the entitlement snapshot.
- Add a cancel-first tooltip for subscribing to the newer revision.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 00:25:41 +08:00

43 lines
1.3 KiB
TypeScript

import React from 'react';
import { createRoot } from 'react-dom/client';
import { createInstance } from 'i18next';
import { I18nextProvider } from 'react-i18next';
import enUS from '../../src/i18n/locales/en-US';
import CloudPlansDialog from '../../src/app/home/components/workspace-settings/CloudPlansDialog';
import '../../src/app/global.css';
const mode = new URLSearchParams(location.search).get('mode') || 'changed';
const current = {
name: 'pro',
subscription_started_at: 1790812800,
revision: 1,
limits: {
'bots.max': 2,
'members.max': 3,
'chat_history.retention_days': 30,
},
entitlement_features: { mcp_stdio: false, 'platform.telegram': false },
monthly_bonus_credits: 10,
};
const i18n = createInstance();
await i18n.init({
lng: 'en-US',
resources: { 'en-US': { translation: enUS } },
});
createRoot(document.getElementById('root')!).render(
<I18nextProvider i18n={i18n}>
<CloudPlansDialog
open
onOpenChange={() => {}}
workspace={
{
workspace: { uuid: 'fixture', name: 'Review workspace' },
membership: { role: mode === 'member' ? 'viewer' : 'owner' },
plan_name: 'pro',
current_plan: mode === 'unknown' ? null : current,
} as any
}
spaceURL="https://space.example.test"
/>
</I18nextProvider>,
);