mirror of
https://github.com/muerwre/orchidmap-front.git
synced 2025-04-25 02:56:41 +07:00
44 lines
No EOL
1.4 KiB
TypeScript
44 lines
No EOL
1.4 KiB
TypeScript
import React from 'react';
|
|
|
|
import { STICKERS } from '~/constants/stickers';
|
|
import * as EDITOR_ACTIONS from '~/redux/editor/actions';
|
|
import { connect } from 'react-redux';
|
|
|
|
const mapStateToProps = () => ({});
|
|
const mapDispatchToProps = {
|
|
editorSetActiveSticker: EDITOR_ACTIONS.editorSetActiveSticker,
|
|
};
|
|
|
|
type Props = ReturnType<typeof mapStateToProps> &
|
|
typeof mapDispatchToProps & {
|
|
width: number;
|
|
};
|
|
|
|
const StickersDialogUnconnected = ({ editorSetActiveSticker, width }: Props) => (
|
|
<div className="control-dialog control-dialog-big" style={{ width }}>
|
|
<div className="helper stickers-helper">
|
|
{Object.keys(STICKERS).map(set => (
|
|
<div key={set}>
|
|
<div className="stickers-set-title">{STICKERS[set].title || null}</div>
|
|
<div className="stickers-grid">
|
|
{Object.keys(STICKERS[set].layers).map(sticker => (
|
|
<div
|
|
style={{
|
|
backgroundImage: `url(${STICKERS[set].url})`,
|
|
backgroundPosition: `${-STICKERS[set].layers[sticker].off * 48}px 50%`,
|
|
}}
|
|
className="sticker-preview"
|
|
key={`${set}-${sticker}`}
|
|
onClick={() => editorSetActiveSticker({ set, sticker })}
|
|
/>
|
|
))}
|
|
</div>
|
|
</div>
|
|
))}
|
|
</div>
|
|
</div>
|
|
);
|
|
|
|
const StickersDialog = connect(mapStateToProps, mapDispatchToProps)(StickersDialogUnconnected);
|
|
|
|
export { StickersDialog }; |