Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(editor): remove page block feature flag #10251

Merged
merged 1 commit into from
Feb 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ import { property } from 'lit/decorators.js';
import { styleMap } from 'lit/directives/style-map.js';

import { NoteConfigExtension } from '../config';
import { isPageBlock } from '../utils';
import * as styles from './edgeless-note-background.css';

@requiredProperties({
Expand Down Expand Up @@ -162,7 +161,7 @@ export class EdgelessNoteBackground extends SignalWatcher(
@pointerdown=${stopPropagation}
@click=${this._handleClickAtBackground}
>
${isPageBlock(this.std, this.note) ? this._renderHeader() : nothing}
${this.note.isPageBlock() ? this._renderHeader() : nothing}
</div>`;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import { html } from 'lit';
import { property } from 'lit/decorators.js';

import { NoteConfigExtension } from '../config';
import { isPageBlock } from '../utils';
import * as styles from './edgeless-page-block-title.css';

@requiredProperties({
Expand All @@ -22,7 +21,7 @@ export class EdgelessPageBlockTitle extends SignalWatcher(
WithDisposable(ShadowlessElement)
) {
override render() {
if (!isPageBlock(this.std, this.note)) return;
if (!this.note.isPageBlock()) return;

const title = this.std
.getOptional(NoteConfigExtension.identifier)
Expand Down
1 change: 0 additions & 1 deletion blocksuite/affine/block-note/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,3 @@ export * from './note-block';
export * from './note-edgeless-block';
export * from './note-service';
export * from './note-spec';
export { isPageBlock } from './utils';
7 changes: 5 additions & 2 deletions blocksuite/affine/block-note/src/note-edgeless-block.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ import { ifDefined } from 'lit/directives/if-defined.js';
import { styleMap } from 'lit/directives/style-map.js';

import { MoreIndicator } from './components/more-indicator';
import { NoteConfigExtension } from './config';
import { NoteBlockComponent } from './note-block';
import { ACTIVE_NOTE_EXTRA_PADDING } from './note-edgeless-block.css';
import * as styles from './note-edgeless-block.css';
import { isPageBlock } from './utils';

export const AFFINE_EDGELESS_NOTE = 'affine-edgeless-note';

Expand Down Expand Up @@ -219,6 +219,9 @@ export class EdgelessNoteBlockComponent extends toGfxBlockComponent(
? this._noteFullHeight < height
: !!collapsedHeight && collapsedHeight < height;

const hasHeader = !!this.std.getOptional(NoteConfigExtension.identifier)
?.edgelessNoteHeader;

return html`
<div
class=${styles.edgelessNoteContainer}
Expand Down Expand Up @@ -260,7 +263,7 @@ export class EdgelessNoteBlockComponent extends toGfxBlockComponent(
.editing=${this._editing}
></edgeless-note-mask>

${isCollapsable && !isPageBlock(this.std, this.model)
${isCollapsable && (!this.model.isPageBlock() || !hasHeader)
? html`<div
class="${classMap({
[styles.collapseButton]: true,
Expand Down
18 changes: 0 additions & 18 deletions blocksuite/affine/block-note/src/utils.ts

This file was deleted.

13 changes: 13 additions & 0 deletions blocksuite/affine/model/src/blocks/note/note-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,4 +154,17 @@ export class NoteBlockModel
}
return false;
}

/**
* We define a note block as a page block if it is the first visible note
*/
isPageBlock() {
return (
this.parent?.children.find(
child =>
child instanceof NoteBlockModel &&
child.displayMode !== NoteDisplayMode.EdgelessOnly
) === this
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ export interface BlockSuiteFlags {
enable_shape_shadow_blur: boolean;
enable_mobile_keyboard_toolbar: boolean;
enable_mobile_linked_doc_menu: boolean;
enable_page_block: boolean;
}

export class FeatureFlagService extends StoreExtension {
Expand All @@ -41,7 +40,6 @@ export class FeatureFlagService extends StoreExtension {
enable_shape_shadow_blur: false,
enable_mobile_keyboard_toolbar: false,
enable_mobile_linked_doc_menu: false,
enable_page_block: false,
});

setFlag(key: keyof BlockSuiteFlags, value: boolean) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import {
DocModeProvider,
EditorSettingProvider,
EditPropsStore,
FeatureFlagService,
FontLoaderService,
ThemeProvider,
} from '@blocksuite/affine-shared/services';
Expand Down Expand Up @@ -399,11 +398,7 @@ export class EdgelessRootBlockComponent extends BlockComponent<
const run = () => {
const storedViewport = std.get(EditPropsStore).getStorage('viewport');
if (!storedViewport) {
const enablePageBlock = this.std
.get(FeatureFlagService)
.getFlag('enable_page_block');

if (!(enablePageBlock && pageBlockViewportFitAnimation())) {
if (!pageBlockViewportFitAnimation()) {
this.gfx.fitToScreen();
}
return;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {
changeNoteDisplayMode,
isPageBlock,
NoteConfigExtension,
} from '@blocksuite/affine-block-note';
import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface';
import type {
Expand Down Expand Up @@ -149,10 +149,6 @@ export class EdgelessChangeNoteButton extends WithDisposable(LitElement) {
.getFlag('enable_advanced_block_visibility');
}

private get _pageBlockEnabled() {
return this.doc.get(FeatureFlagService).getFlag('enable_page_block');
}

private get doc() {
return this.edgeless.doc;
}
Expand Down Expand Up @@ -348,6 +344,10 @@ export class EdgelessChangeNoteButton extends WithDisposable(LitElement) {
const onlyOne = len === 1;
const isDocOnly = displayMode === NoteDisplayMode.DocOnly;

const hasPageBlockHeader = !!this.edgeless.std.getOptional(
NoteConfigExtension.identifier
)?.edgelessNoteHeader;

const theme = this.edgeless.std.get(ThemeProvider).theme;
const buttonIconSize = { width: '20px', height: '20px' };
const buttons = [
Expand Down Expand Up @@ -378,10 +378,7 @@ export class EdgelessChangeNoteButton extends WithDisposable(LitElement) {
`
: nothing,

onlyOne &&
!isPageBlock(this.edgeless.std, note) &&
this._pageBlockEnabled &&
!this._advancedVisibilityEnabled
onlyOne && !note.isPageBlock() && !this._advancedVisibilityEnabled
? html`<editor-icon-button
aria-label="Display In Page"
.showTooltip=${displayMode === NoteDisplayMode.DocAndEdgeless}
Expand Down Expand Up @@ -536,7 +533,7 @@ export class EdgelessChangeNoteButton extends WithDisposable(LitElement) {

onlyOne ? this.quickConnectButton : nothing,

!isPageBlock(this.edgeless.std, this.notes[0])
!this.notes[0].isPageBlock() || !hasPageBlockHeader
? html`<editor-icon-button
aria-label="Size"
data-testid="edgeless-note-auto-height"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,13 @@ import { useSharingUrl } from '@affine/core/components/hooks/affine/use-share-ur
import { WorkspaceDialogService } from '@affine/core/modules/dialogs';
import { DocService } from '@affine/core/modules/doc';
import { EditorService } from '@affine/core/modules/editor';
import { FeatureFlagService } from '@affine/core/modules/feature-flag';
import { useInsidePeekView } from '@affine/core/modules/peek-view/view/modal-container';
import { WorkspaceService } from '@affine/core/modules/workspace';
import { extractEmojiIcon } from '@affine/core/utils';
import { useI18n } from '@affine/i18n';
import { track } from '@affine/track';
import { GfxControllerIdentifier } from '@blocksuite/affine/block-std/gfx';
import {
matchModels,
NoteBlockModel,
NoteDisplayMode,
} from '@blocksuite/affine/blocks';
import { type NoteBlockModel } from '@blocksuite/affine/blocks';
import { Bound } from '@blocksuite/affine/global/utils';
import {
InformationIcon,
Expand Down Expand Up @@ -184,19 +179,9 @@ const LinkButton = ({ note }: { note: NoteBlockModel }) => {
};

export const EdgelessNoteHeader = ({ note }: { note: NoteBlockModel }) => {
const flags = useService(FeatureFlagService).flags;
const insidePeekView = useInsidePeekView();

if (!flags.enable_page_block) return null;

const isFirstVisibleNote =
note.parent?.children.find(
child =>
matchModels(child, [NoteBlockModel]) &&
child.displayMode === NoteDisplayMode.DocAndEdgeless
) === note;

if (!isFirstVisibleNote) return null;
if (!note.isPageBlock()) return null;

return (
<div className={styles.header} data-testid="edgeless-page-block-header">
Expand Down
11 changes: 0 additions & 11 deletions packages/frontend/core/src/modules/feature-flag/constant.ts
Original file line number Diff line number Diff line change
Expand Up @@ -231,17 +231,6 @@ export const AFFINE_FLAGS = {
configurable: true,
defaultState: isCanaryBuild,
},
// TODO(@L-Sun): remove this flag when ready
enable_page_block: {
category: 'blocksuite',
bsFlag: 'enable_page_block',
displayName:
'com.affine.settings.workspace.experimental-features.enable-page-block-header.name',
description:
'com.affine.settings.workspace.experimental-features.enable-page-block-header.description',
configurable: isCanaryBuild,
defaultState: isCanaryBuild,
},
enable_editor_rtl: {
category: 'affine',
displayName:
Expand Down
8 changes: 0 additions & 8 deletions packages/frontend/i18n/src/i18n.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5437,14 +5437,6 @@ export function useAFFiNEI18N(): {
* `Once enabled, you can preview PDF in embed view.`
*/
["com.affine.settings.workspace.experimental-features.enable-pdf-embed-preview.description"](): string;
/**
* `Page Block Header`
*/
["com.affine.settings.workspace.experimental-features.enable-page-block-header.name"](): string;
/**
* `Once enabled, the header of page block will be displayed.`
*/
["com.affine.settings.workspace.experimental-features.enable-page-block-header.description"](): string;
/**
* `Editor RTL`
*/
Expand Down
2 changes: 0 additions & 2 deletions packages/frontend/i18n/src/resources/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1357,8 +1357,6 @@
"com.affine.settings.workspace.experimental-features.enable-mobile-edgeless-editing.description": "Once enabled, users can edit edgeless canvas.",
"com.affine.settings.workspace.experimental-features.enable-pdf-embed-preview.name": "PDF embed preview",
"com.affine.settings.workspace.experimental-features.enable-pdf-embed-preview.description": "Once enabled, you can preview PDF in embed view.",
"com.affine.settings.workspace.experimental-features.enable-page-block-header.name": "Page Block Header",
"com.affine.settings.workspace.experimental-features.enable-page-block-header.description": "Once enabled, the header of page block will be displayed.",
"com.affine.settings.workspace.experimental-features.enable-editor-rtl.name": "Editor RTL",
"com.affine.settings.workspace.experimental-features.enable-editor-rtl.description": "Once enabled, the editor will be displayed in RTL mode.",
"com.affine.settings.workspace.not-owner": "Only an owner can edit the workspace avatar and name. Changes will be shown for everyone.",
Expand Down
Loading