mirror of
https://github.com/balzack/databag.git
synced 2025-02-12 03:29:16 +00:00
fix some rendering flicker on conversation titile
This commit is contained in:
parent
e054496827
commit
498413642a
@ -161,7 +161,6 @@ test('testing', async () => {
|
||||
});
|
||||
|
||||
const renderCount = screen.getByTestId('profile').props.renderCount;
|
||||
console.log("RENDER COUNT:", renderCount);
|
||||
|
||||
await act(async () => {
|
||||
identity = { name: 'renderer' };
|
||||
@ -169,8 +168,6 @@ console.log("RENDER COUNT:", renderCount);
|
||||
await profile.actions.setRevision(2048);
|
||||
});
|
||||
|
||||
console.log(renderCount);
|
||||
|
||||
await act(async () => {
|
||||
expect(screen.getByTestId('profile').props.renderCount).toBe(renderCount + 1);
|
||||
});
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Input, List } from 'antd';
|
||||
import { Input, List, Button } from 'antd';
|
||||
import { CardsWrapper } from './Cards.styled';
|
||||
import { SortAscendingOutlined, UpOutlined, DoubleRightOutlined, UserOutlined, SearchOutlined } from '@ant-design/icons';
|
||||
import { useCards } from './useCards.hook';
|
||||
@ -27,10 +27,7 @@ export function Cards({ closeCards, openContact, openListing }) {
|
||||
</div>
|
||||
{ state.display === 'small' && (
|
||||
<div className="inline">
|
||||
<div className="add" onClick={openListing}>
|
||||
<UserOutlined />
|
||||
<div className="label">New</div>
|
||||
</div>
|
||||
<Button type="primary" icon={<UserOutlined />} onClick={openListing}>Add</Button>
|
||||
</div>
|
||||
)}
|
||||
{ state.display !== 'small' && (
|
||||
|
@ -10,7 +10,7 @@ export function useCards() {
|
||||
const [state, setState] = useState({
|
||||
tooltip: false,
|
||||
sorted: false,
|
||||
display: null,
|
||||
display: 'small',
|
||||
cards: [],
|
||||
});
|
||||
|
||||
@ -22,6 +22,11 @@ export function useCards() {
|
||||
setState((s) => ({ ...s, ...value }));
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
const { display } = viewport.state;
|
||||
updateState({ display });
|
||||
}, [viewport.state]);
|
||||
|
||||
useEffect(() => {
|
||||
const contacts = Array.from(card.state.cards.values()).map(item => {
|
||||
const profile = item?.data?.cardProfile;
|
||||
|
@ -3,6 +3,7 @@ import { ChannelHeaderWrapper, StatusError } from './ChannelHeader.styled';
|
||||
import { ExclamationCircleOutlined, SettingOutlined, CloseOutlined } from '@ant-design/icons';
|
||||
import { Tooltip } from 'antd';
|
||||
import { Logo } from 'logo/Logo';
|
||||
import { useEffect } from 'react';
|
||||
|
||||
export function ChannelHeader({ closeConversation, openDetails, contentKey }) {
|
||||
|
||||
|
@ -99,9 +99,14 @@ export function useChannelHeader(contentKey) {
|
||||
let title;
|
||||
try {
|
||||
const detail = channelValue?.data?.channelDetail;
|
||||
if (detail?.dataType === 'sealed' && contentKey) {
|
||||
const unsealed = decryptChannelSubject(detail.data, contentKey);
|
||||
title = unsealed.subject;
|
||||
if (detail?.dataType === 'sealed') {
|
||||
if (contentKey) {
|
||||
const unsealed = decryptChannelSubject(detail.data, contentKey);
|
||||
title = unsealed.subject;
|
||||
}
|
||||
else {
|
||||
title = '...';
|
||||
}
|
||||
}
|
||||
else if (detail?.dataType === 'superbasic') {
|
||||
const data = JSON.parse(detail.data);
|
||||
|
@ -51,7 +51,7 @@ export function useConversation(cardId, channelId) {
|
||||
const seals = getChannelSeals(data);
|
||||
if (isUnsealed(seals, sealKey)) {
|
||||
const contentKey = getContentKey(seals, sealKey);
|
||||
updateState({ sealed: true, contentKey });
|
||||
updateState({ sealed: true, wtf: true, contentKey });
|
||||
}
|
||||
else {
|
||||
updateState({ sealed: true, contentKey: null });
|
||||
@ -105,7 +105,6 @@ export function useConversation(cardId, channelId) {
|
||||
const { card, channel } = conversationId.current;
|
||||
loading.current = true;
|
||||
conversationId.current = null;
|
||||
updateState({ contentKey: null });
|
||||
await conversation.actions.setChannel(card, channel);
|
||||
loading.current = false;
|
||||
await setChannel();
|
||||
@ -258,7 +257,6 @@ export function useConversation(cardId, channelId) {
|
||||
updateTopic: async (topic, text) => {
|
||||
const { assets, textSize, textColor } = topic;
|
||||
const message = { text, textSize, textColor, assets };
|
||||
console.log("UPDATE", message);
|
||||
|
||||
if (!state.busy) {
|
||||
updateState({ busy: true });
|
||||
|
@ -129,7 +129,7 @@ export function Details({ closeDetails, closeConversation, openContact }) {
|
||||
<DetailsWrapper>
|
||||
{ modalContext }
|
||||
<div class="header">
|
||||
<div class="label">Topic</div>
|
||||
<div class="label">Topic Details</div>
|
||||
{ state.display === 'xlarge' && (
|
||||
<div class="dismiss" onClick={closeConversation}>
|
||||
<DoubleRightOutlined />
|
||||
|
@ -25,7 +25,7 @@ export function useDetails() {
|
||||
showEditSubject: false,
|
||||
editSubject: null,
|
||||
|
||||
display: null,
|
||||
display: 'small',
|
||||
sealed: false,
|
||||
contentKey: null,
|
||||
seals: null,
|
||||
@ -167,9 +167,14 @@ export function useDetails() {
|
||||
let title;
|
||||
try {
|
||||
const detail = channelValue?.data?.channelDetail;
|
||||
if (detail?.dataType === 'sealed' && state.contentKey) {
|
||||
const unsealed = decryptChannelSubject(detail.data, state.contentKey);
|
||||
title = unsealed.subject;
|
||||
if (detail?.dataType === 'sealed') {
|
||||
if (state.contentKey) {
|
||||
const unsealed = decryptChannelSubject(detail.data, state.contentKey);
|
||||
title = unsealed.subject;
|
||||
}
|
||||
else {
|
||||
title = '...';
|
||||
}
|
||||
}
|
||||
else if (detail?.dataType === 'superbasic') {
|
||||
const data = JSON.parse(detail.data);
|
||||
|
Loading…
Reference in New Issue
Block a user