import { resource } from '@cn-ui/use';
import copy from 'copy-to-clipboard';
import { Component, For, Show, useContext } from 'solid-js';
import { DragPoster, DropReceiver } from '@cn-ui/headless';
import { Message } from '../src/MessageHint';
import { Notice } from '../src/utils/notice';
import { NoteBookContext } from './App';
import { AsyncImage } from './components/AsyncImage';
import { ExpendText } from './components/ExpendText';
import { SingleMagic, useIndexedDB } from './use/useIndexedDB';
export const MagicList = () => {
const { IndexList, store, DeleteMagic, ChangeMagic, AddDemoImage, DeleteImage } =
useIndexedDB();
const { hidImage } = useContext(NoteBookContext);
return (
}
>
{(item, index) => {
const data = resource(() => store.getItem(item));
const DeleteButton = (
{
data.refetch();
Notice.success('删除成功');
});
},
}}
>
{
const info = confirm(
`是否删除${data()?.title}\n${data()?.tags}`
);
if (info) {
DeleteMagic(data()?.id ?? IndexList()[index()]).then(() =>
Notice.success('删除成功')
);
}
}}
>
delete
);
return (
{
Notice.success('修改魔咒成功');
});
},
extra(_, dataTransfer: DataTransfer) {
Promise.all(
[...dataTransfer.files]
.filter((i) => {
return i.type.startsWith('image/');
})
.map((i) => AddDemoImage(i, data()))
).then((list) => {
list.length && data.refetch();
});
},
}}
>
这个区块貌似出现了 BUG,如果重新加载不行,就删除吧
{DeleteButton}
{
Notice.success('重新加载开始');
data.refetch();
}}
>
重新加载
加载中 }>
{
const cb = prompt(
'请输入这个魔咒的名称',
data().title
);
if (cb)
ChangeMagic({ ...data(), title: cb }).then(
data.refetch
);
}}
>
edit
{data().title}
{DeleteButton}
{
e.stopPropagation();
const cb = prompt(
'请修改描述',
data().description
);
if (cb)
ChangeMagic({
...data(),
description: cb,
}).then(data.refetch);
}}
>
edit
{data().description || '没有描述信息哦'}
{
send('INPUT_MAGIC', data().tags);
transfer.setData('text', data().tags);
Message.success('您可以拖拽魔咒到其他页面');
}}
>
{
e.stopPropagation();
const cb = prompt('请修改魔咒', data().tags);
if (cb)
ChangeMagic({ ...data(), tags: cb })
.then(data.refetch)
.then(() => {
Notice.success('修改魔咒成功');
});
}}
>
edit
{
copy(data().tags);
Notice.success('复制成功');
}}
>
copy
{data().tags}
拖拽图片到这里添加
}
>
{(id) => {
return (
);
}}
{/* 时间标记 */}
);
}}
);
};
const ImageCard: Component<{ data: SingleMagic; id: string }> = (props) => {
const { getImage } = useIndexedDB();
return (
send('MAGIC_IMAGE', {
origin: props.data,
position: props.id,
})
}
>
);
};