c596a5e342
## Description Promotes the next-gen UI library (formerly `twenty-new-ui`) to the name **`twenty-ui`** (v0.1.0, publishable) and renames the old package to **`twenty-ui-deprecated`**. Rewrites ~1,730 `twenty-ui` imports → `twenty-ui-deprecated`, updates all configs/CI/Docker/deps, and migrates twenty-front's `Toggle` to the new package (first consumer) as a drop-in. ## Next steps - Wire the `ui/v*` publish dispatch (`cd-deploy-tag.yaml` + `.yarnrc.yml`), then tag `ui/v0.1.0` to publish. - Continue migrating components from `twenty-ui-deprecated` → `twenty-ui`.
49 lines
1.8 KiB
TypeScript
49 lines
1.8 KiB
TypeScript
import { styled } from '@linaria/react';
|
|
import { themeCssVariables } from 'twenty-ui-deprecated/theme-constants';
|
|
|
|
import { AiChatErrorRenderer } from '@/ai/components/AiChatErrorRenderer';
|
|
import { agentChatErrorComponentFamilyState } from '@/ai/states/agentChatErrorComponentFamilyState';
|
|
import { agentChatHasMessageComponentSelector } from '@/ai/states/selectors/agentChatHasMessageComponentSelector';
|
|
import { agentChatIsLoadingState } from '@/ai/states/agentChatIsLoadingState';
|
|
import { currentAiChatThreadState } from '@/ai/states/currentAiChatThreadState';
|
|
import { useAtomComponentFamilyStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomComponentFamilyStateValue';
|
|
import { useAtomComponentSelectorValue } from '@/ui/utilities/state/jotai/hooks/useAtomComponentSelectorValue';
|
|
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
|
import { isDefined } from 'twenty-shared/utils';
|
|
|
|
const StyledErrorContainer = styled.div`
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
flex: 1;
|
|
flex-direction: column;
|
|
padding: ${themeCssVariables.spacing[3]};
|
|
width: 100%;
|
|
`;
|
|
|
|
export const AiChatStandaloneError = () => {
|
|
const agentChatIsLoading = useAtomStateValue(agentChatIsLoadingState);
|
|
|
|
const currentAiChatThread = useAtomStateValue(currentAiChatThreadState);
|
|
const agentChatError = useAtomComponentFamilyStateValue(
|
|
agentChatErrorComponentFamilyState,
|
|
{ threadId: currentAiChatThread },
|
|
);
|
|
|
|
const hasMessages = useAtomComponentSelectorValue(
|
|
agentChatHasMessageComponentSelector,
|
|
);
|
|
|
|
const shouldRender =
|
|
!hasMessages && isDefined(agentChatError) && !agentChatIsLoading;
|
|
|
|
if (!shouldRender) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<StyledErrorContainer>
|
|
<AiChatErrorRenderer error={agentChatError} />
|
|
</StyledErrorContainer>
|
|
);
|
|
};
|