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

Version Packages #91

Merged
merged 1 commit into from
Dec 30, 2022
Merged

Version Packages #91

merged 1 commit into from
Dec 30, 2022

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Dec 19, 2022

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

ember-headless-table@1.3.0

Minor Changes

  • #94 310a6e0 Thanks @NullVoxPopuli! - An alternative, yet more verbose, option is now available for the sticky / pinnable columns plugin.

    This is, in part, due to waiting on
    RFC#883: add new timing capabilities to modifier manager.

    But also, as an escape hatch for performance sensitive situations where one would want to avoid altering any style attributes during render (as is one of the primary use cases of RFC#883) as this causes repaint calculations and degraded performance in the browser.

    This new technique for the sticky/pinnable colums plugin allows you to set the style attribute so that the browser can calculate layout in a single pass.

    To opt in to this, two things must be done:

    1. invoke the styleStringFor helper in the template, and set the result to the style attribute for the th and td cells.

      import { styleStringFor } from 'ember-headless-table/plugins/sticky-columns'
      
      // ...
      
      <template>
          <div class="h-full overflow-auto">
            <table>
              <thead>
                <tr class="relative">
                  {{#each @table.columns as |column|}}
                    <th style="{{styleStringFor column}}">
                      {{column.name}}
                    </th>
                  {{/each}}
                </tr>
              </thead>
              <tbody>
                {{#each @table.rows as |row|}}
                  <tr class="relative">
                    {{#each @table.columns as |column|}}
                      <td style="{{styleStringFor column}}">
                        {{column.getValueForRow row}}
                      </td>
                    {{/each}}
                  </tr>
                {{/each}}
              </tbody>
            </table>
          </div>
      </template>
    2. when configuring the StickyColumns plugin in headlessTable, configure the the workaroundForModifierTimingUpdateRFC883 flag to true. This allows td and th cells to have modifiers without causing repaints due to style changes caused by the sticky columns plugin.

    class Example {
      table = headlessTable(this, {
        columns: () => [
          // ...
        ],
        // ...
        plugins: [
          StickyColumns.with(() => ({
            workaroundForModifierTimingUpdateRFC883: true,
          })),
        ],
      });
    }

Patch Changes

  • #81 57c22d4 Thanks @NullVoxPopuli! - Prevent hard-to-debug issues that occur with incorrect column configs.
    One such way problems can occur is when the key property is duplicated
    for multiple column configs.

    This is now eagerly prevented via dev-time Error.
    All the column config validity checking code is removed in production builds
    via @embroider/macros macroCondition(isDevelopingApp()).

@github-actions github-actions bot force-pushed the changeset-release/main branch from 529d1ca to 34d5043 Compare December 30, 2022 21:01
@NullVoxPopuli NullVoxPopuli merged commit 65efdc4 into main Dec 30, 2022
@NullVoxPopuli NullVoxPopuli deleted the changeset-release/main branch December 30, 2022 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant