Copy css for edition
This commit is contained in:
parent
e9b285c5e0
commit
5e6d0f6404
7 changed files with 62 additions and 6 deletions
|
@ -299,8 +299,9 @@
|
||||||
@import "./views/rooms/_TopUnreadMessagesBar.pcss";
|
@import "./views/rooms/_TopUnreadMessagesBar.pcss";
|
||||||
@import "./views/rooms/_VoiceRecordComposerTile.pcss";
|
@import "./views/rooms/_VoiceRecordComposerTile.pcss";
|
||||||
@import "./views/rooms/_WhoIsTypingTile.pcss";
|
@import "./views/rooms/_WhoIsTypingTile.pcss";
|
||||||
@import "./views/rooms/wysiwyg_composer/_FormattingButtons.pcss";
|
@import "./views/rooms/wysiwyg_composer/components/_FormattingButtons.pcss";
|
||||||
@import "./views/rooms/wysiwyg_composer/_WysiwygComposer.pcss";
|
@import "./views/rooms/wysiwyg_composer/_SendWysiwygComposer.pcss";
|
||||||
|
@import "./views/rooms/wysiwyg_composer/_EditWysiwygComposer.pcss";
|
||||||
@import "./views/settings/_AvatarSetting.pcss";
|
@import "./views/settings/_AvatarSetting.pcss";
|
||||||
@import "./views/settings/_CrossSigningPanel.pcss";
|
@import "./views/settings/_CrossSigningPanel.pcss";
|
||||||
@import "./views/settings/_CryptographyPanel.pcss";
|
@import "./views/settings/_CryptographyPanel.pcss";
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 New Vector Ltd
|
||||||
|
Copyright 2019 The Matrix.org Foundation C.I.C.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.mx_EditWysiwygComposer {
|
||||||
|
--EditWysiwygComposer-padding-inline: 3px;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
max-width: 100%; /* disable overflow */
|
||||||
|
width: auto;
|
||||||
|
gap: 5px;
|
||||||
|
padding: 3px var(--EditWysiwygComposer-padding-inline);
|
||||||
|
|
||||||
|
.mx_WysiwygComposer_container {
|
||||||
|
border-radius: 4px;
|
||||||
|
border: solid 1px $primary-hairline-color;
|
||||||
|
background-color: $background;
|
||||||
|
max-height: 200px;
|
||||||
|
padding: 3px 6px;
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
border-color: rgba($accent, 0.5); /* Only ever used here */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_EditWysiwygComposer_buttons {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: row wrap-reverse; /* display "Save" over "Cancel" */
|
||||||
|
justify-content: flex-end;
|
||||||
|
gap: 5px;
|
||||||
|
margin-inline-start: auto;
|
||||||
|
|
||||||
|
.mx_AccessibleButton {
|
||||||
|
flex: 1;
|
||||||
|
box-sizing: border-box;
|
||||||
|
min-width: 100px; /* magic number to align the edge of the button with the input area */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.mx_WysiwygComposer {
|
.mx_SendWysiwygComposer {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
|
@ -47,6 +47,7 @@ export function EditWysiwygComposer({ editorStateTransfer, ...props }: EditWysiw
|
||||||
const { editMessage, endEditing, onChange, isSaveDisabled } = useEditing(initialContent, editorStateTransfer);
|
const { editMessage, endEditing, onChange, isSaveDisabled } = useEditing(initialContent, editorStateTransfer);
|
||||||
|
|
||||||
return isReady && <WysiwygComposer
|
return isReady && <WysiwygComposer
|
||||||
|
className="mx_EditWysiwygComposer"
|
||||||
initialContent={initialContent}
|
initialContent={initialContent}
|
||||||
onChange={onChange}
|
onChange={onChange}
|
||||||
onSend={editMessage}
|
onSend={editMessage}
|
||||||
|
|
|
@ -39,7 +39,7 @@ const Content = forwardRef<HTMLElement, ContentProps>(
|
||||||
|
|
||||||
export function SendWysiwygComposer(props: SendWysiwygComposerProps) {
|
export function SendWysiwygComposer(props: SendWysiwygComposerProps) {
|
||||||
return (
|
return (
|
||||||
<WysiwygComposer {...props}>{ (ref, wysiwyg) => (
|
<WysiwygComposer className="mx_SendWysiwygComposer" {...props}>{ (ref, wysiwyg) => (
|
||||||
<Content disabled={props.disabled} ref={ref} formattingFunctions={wysiwyg} />
|
<Content disabled={props.disabled} ref={ref} formattingFunctions={wysiwyg} />
|
||||||
) }
|
) }
|
||||||
</WysiwygComposer>);
|
</WysiwygComposer>);
|
||||||
|
|
|
@ -26,6 +26,7 @@ interface WysiwygComposerProps {
|
||||||
onChange?: (content: string) => void;
|
onChange?: (content: string) => void;
|
||||||
onSend: () => void;
|
onSend: () => void;
|
||||||
initialContent?: string;
|
initialContent?: string;
|
||||||
|
className?: string;
|
||||||
children?: (
|
children?: (
|
||||||
ref: MutableRefObject<HTMLDivElement | null>,
|
ref: MutableRefObject<HTMLDivElement | null>,
|
||||||
wysiwyg: FormattingFunctions,
|
wysiwyg: FormattingFunctions,
|
||||||
|
@ -33,7 +34,7 @@ interface WysiwygComposerProps {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const WysiwygComposer = memo(function WysiwygComposer(
|
export const WysiwygComposer = memo(function WysiwygComposer(
|
||||||
{ disabled = false, onChange, onSend, initialContent, children }: WysiwygComposerProps,
|
{ disabled = false, onChange, onSend, initialContent, className, children }: WysiwygComposerProps,
|
||||||
) {
|
) {
|
||||||
const inputEventProcessor = useInputEventProcessor(onSend);
|
const inputEventProcessor = useInputEventProcessor(onSend);
|
||||||
|
|
||||||
|
@ -47,7 +48,7 @@ export const WysiwygComposer = memo(function WysiwygComposer(
|
||||||
}, [onChange, content, disabled]);
|
}, [onChange, content, disabled]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="mx_WysiwygComposer">
|
<div className={className}>
|
||||||
<FormattingButtons composer={wysiwyg} formattingStates={formattingStates} />
|
<FormattingButtons composer={wysiwyg} formattingStates={formattingStates} />
|
||||||
<Editor ref={ref} disabled={!isWysiwygReady || disabled} />
|
<Editor ref={ref} disabled={!isWysiwygReady || disabled} />
|
||||||
{ children?.(ref, wysiwyg) }
|
{ children?.(ref, wysiwyg) }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue