안녕하세요, 모바일 기본 화면에서 빨간색 테두리로 표시된 영역을 표시하지 않는 것이 가능한지 궁금합니다.
어떤 파일/부분을 수정해야 하나요?
감사합니다.
OP의 스크린샷은 주제 편집인 것 같고, 주제 제목, 카테고리, 태그 입력창도 답변에 비해 추가 공간을 차지합니다.
답변해준 건 괜찮은데, 새 토픽은 좀 작아.
더 많은 논의가 이루어지고 있는 기존 Contribute > UX 토픽도 있으니, 의견을 추가하고 싶으시면 아래를 참고해 주세요:
오른쪽 상단의 버거 아이콘(수평 3개 선)을 클릭하여 포맷팅 툴바(빨간색 테두리 영역)를 숨길 수 있습니다.
네, 맞습니다. 하지만 모든 신규 사용자가 이를 아는 것은 아닙니다. 그래서 UX 문제가 될 수 있습니다.
아래의 작은 스크립트를 시도해 볼 수 있습니다. Head 탭에서 테마나 새 컴포넌트 HTML에 추가하세요.
다음 조건을 만족할 때 툴바를 숨깁니다:
- 새 주제 / 주제 첫 번째 게시물 편집 / 주제 초안
- 모바일 뷰
- 사용자가 저장된 설정이 없는 경우. [1]
이 코드는 사용자의 설정을 변경하지 않습니다.
<script type="text/discourse-plugin" version="0.8">
const { on, observes } = require("discourse-common/utils/decorators");
const serviceComposer = api.container.lookup("service:composer");
function canUpdateToolbar(context) {
return (
// 새 주제 / 첫 번째 게시물 편집 / 주제 초안
context._isNewTopic &&
// 툴바가 숨겨져 있지 않음
context.showToolbar &&
// 모바일 뷰만 해당
context.site.mobileView &&
// 사용자 설정을 무시하지 않음
context.keyValueStore.get("toolbar-enabled") === undefined
);
}
function updateShowToolBar(value) {
serviceComposer._wasToolbarEnabled = !value;
// 사용자 브라우저에 상태를 기억하지 않고 툴바를 숨깁니다.
serviceComposer._toolbarEnabled = value;
// 계산된 getter를 새로고침
serviceComposer.notifyPropertyChange("showToolbar");
}
api.modifyClass("component:composer-editor", {
pluginId: "composer-editor-toolbar",
@observes("composer.action")
_composerSwitchAction() {
// 컴포저를 닫지 않고 답변에서 새 주제로 전환되는 상황을 처리합니다.
if (canUpdateToolbar(this)) {
updateShowToolBar(false);
}
},
@on("didInsertElement")
_composerEditorInit() {
this.appEvents.one(`${this.composerEventPrefix}:will-open`, () => {
if (canUpdateToolbar(this)) {
updateShowToolBar(false);
}
});
this._super(...arguments);
},
@on("willDestroyElement")
_composerClosed() {
this._super(...arguments);
// 툴바가 수동으로 숨겨진 경우 복원합니다.
if (serviceComposer._wasToolbarEnabled) {
updateShowToolBar(true);
}
},
});
</script>
사용자가 토글을 한 번 클릭하면 브라우저가 상태를 기억합니다 ↩︎
Arkshine님, 답변 감사합니다.
테마의 head 탭에 추가했는데 작동하지 않습니다.
잘못된 방법으로 한 건가요?
그걸 어디에서 필요한가요? 햄버거 버튼을 탭하면 네이티브로 처리됩니다 — 적어도 iPhone에서는요.
Such a tiny window to edit here on a cell phone 에서 이미 많이 반복된 내용을 논의하고 있는 것 같습니다.
이곳의 논의를 종료하고, 해당 스레드에서 집중적으로 논의하도록 하겠습니다.




