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

fix(plugin-runtime): Document.tsx should work normal with title tag render #4961

Merged
merged 2 commits into from
Nov 24, 2023

Conversation

fireairforce
Copy link
Member

@fireairforce fireairforce commented Nov 17, 2023

fix(plugin-runtime): Document.tsx should work normal when user config html.title or html.titleByEntries

Summary

🤖[deprecated] Generated by Copilot at 72e99f7

This pull request improves the document title handling in the @modern-js/runtime package. It adds a new Title component that uses a DOCUMENT_TITLE_PLACEHOLDER constant to render the title element. It also allows the user to configure the title via the html options or use a custom title element from the document.

Details

🤖[deprecated] Generated by Copilot at 72e99f7

  • Add a changeset file to document the patch version update and bug fixes for the @modern-js/runtime package (link)
  • Add a new constant DOCUMENT_TITLE_PLACEHOLDER to represent the template expression for the document title (link)
  • Import the DOCUMENT_TITLE_PLACEHOLDER constant to the documentPlugin file and the Title component file (link, link)
  • Add a new variable titles in the documentPlugin function to concatenate the user-configured title and the custom title element from the document (link)
  • Replace the DOCUMENT_TITLE_PLACEHOLDER in the final HTML with the titles variable in the documentPlugin function (link)
  • Add a new property hasSetTitle to the DocumentStructureContextProps type and the DocumentStructureContext provider to indicate whether the document has a custom title element or not (link, link)
  • Pass the hasSetTitle property to the DocumentStructureContext provider in the Html component function, based on the result of the findTargetElement helper function (link, link)
  • Destructure the hasSetTitle property from the DocumentStructureContext in the Head component function (link)
  • Add a conditional rendering of the Title component in the Head component function, based on the hasSetTitle property (link)
  • Remove the unnecessary template literals from the DefaultHead component function (link)
  • Add a new file for the Title component, which renders a title element with the DOCUMENT_TITLE_PLACEHOLDER as its content (link)
  • Update the first test case in the document/index.test.tsx file to include the Title component with the DOCUMENT_TITLE_PLACEHOLDER in the expected output (link)
  • Add a new test case in the document/index.test.tsx file to check that the Title component renders the DOCUMENT_TITLE_PLACEHOLDER successfully when the document has a custom title element (link)

Related Issue

Checklist

  • I have added changeset via pnpm run change.
  • I have updated the documentation.
  • I have added tests to cover my changes.

Copy link

changeset-bot bot commented Nov 17, 2023

🦋 Changeset detected

Latest commit: 909109e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 269 packages
Name Type
@modern-js/runtime Patch
@modern-js/plugin-bff Patch
@modern-js/plugin-tailwindcss Patch
@modern-js/devtools-client Patch
@modern-js/plugin-devtools Patch
@modern-js/plugin-garfish Patch
@modern-js/plugin-router-v5 Patch
@modern-js/plugin-testing Patch
@modern-js/storybook-builder Patch
@integration-test/alias-set Patch
api-service-koa Patch
app-docmuent Patch
async-entry-test Patch
tmp Patch
bff-express Patch
bff-koa Patch
integration-clean-dist-path Patch
integration-compatibility Patch
integration-custom-dist-path Patch
integration-custom-render Patch
integration-custom-template Patch
dev-server Patch
@integration-test/devtools Patch
integration-disable-html Patch
esbuild-transform-and-minify Patch
main-entry-name Patch
nonce Patch
routes Patch
file-based-router Patch
use-loader Patch
select-mul-entry-test Patch
select-one-entry-test Patch
server-config Patch
server-middleware Patch
server-hook-reqeust Patch
server-hook-response Patch
server-hook-router Patch
@integration-test/server-hook-reqeust Patch
server-prod Patch
@source-code-build/app-ts-loader Patch
@source-code-build/app Patch
ssg-fixtures-nested-routes Patch
ssg-fixtures-simple Patch
ssg-fixtures-web-server Patch
ssr-base-json-test Patch
ssr-base-test Patch
ssr-base-fallback-test Patch
init Patch
ssr-inline Patch
ssr-preload Patch
ssr-streaming-test Patch
swc-minify-css Patch
swc-minify-js Patch
transform-fail Patch
integration-tailwindcss-v2 Patch
integration-tailwindcss-v3-js-config Patch
integration-tailwindcss-v3-merge-config Patch
integration-tailwindcss-v3-ts-config Patch
integration-tailwindcss-v3 Patch
twin-macro-v2 Patch
twin-macro-v3 Patch
tmp-dir Patch
write-to-dist Patch
@e2e/garfish-dashboard-router-v6 Patch
@e2e/garfish-dashboard Patch
@e2e/garfish-main-router-v6 Patch
@e2e/garfish-main Patch
@e2e/garfish-table Patch
@modern-js/storybook Patch
integration-tests-storybook Patch
@modern-js/core Patch
@modern-js/doc-plugin-auto-sidebar Patch
@modern-js/plugin-changeset Patch
@modern-js/plugin-data-loader Patch
@modern-js/plugin-i18n Patch
@modern-js/plugin-lint Patch
@modern-js/plugin-proxy Patch
@modern-js/plugin-ssg Patch
@modern-js/plugin-swc Patch
@modern-js/builder-doc Patch
@modern-js/main-doc Patch
@modern-js/module-tools-docs Patch
@modern-js/devtools-kit Patch
@modern-js/new-action Patch
@modern-js/sandpack-react Patch
@modern-js-app/eslint-config Patch
@modern-js/eslint-config Patch
@modern-js/tsconfig Patch
@modern-js/babel-plugin-module-resolver Patch
@modern-js/bff-core Patch
@modern-js/bff-runtime Patch
@modern-js/server-core Patch
@modern-js/create-request Patch
@modern-js/plugin-express Patch
@modern-js/plugin-koa Patch
@modern-js/plugin-polyfill Patch
@modern-js/plugin-server Patch
@modern-js/plugin-worker Patch
@modern-js/prod-server Patch
@modern-js/server Patch
@modern-js/server-utils Patch
@modern-js/builder-cli Patch
@modern-js/builder-rspack-provider Patch
@modern-js/builder-shared Patch
@modern-js/builder-webpack-provider Patch
@modern-js/builder Patch
@modern-js/builder-plugin-esbuild Patch
@modern-js/builder-plugin-image-compress Patch
@modern-js/builder-plugin-node-polyfill Patch
@modern-js/builder-plugin-stylus Patch
@modern-js/builder-plugin-swc Patch
@modern-js/builder-plugin-vue Patch
@modern-js/builder-plugin-vue2 Patch
@modern-js/plugin-module-babel Patch
@modern-js/plugin-module-banner Patch
@modern-js/plugin-module-import Patch
@modern-js/plugin-module-node-polyfill Patch
@modern-js/plugin-module-polyfill Patch
@modern-js/plugin-module-vue Patch
@modern-js/app-tools Patch
@modern-js/module-tools Patch
@modern-js/monorepo-tools Patch
@modern-js/create Patch
@modern-js/e2e Patch
@modern-js/node-bundle-require Patch
@modern-js/plugin Patch
@modern-js/runtime-utils Patch
@modern-js/types Patch
@modern-js/upgrade Patch
@modern-js/utils Patch
@modern-js/babel-compiler Patch
@scripts/build Patch
@scripts/check-changeset Patch
@scripts/jest-config Patch
@scripts/lint-package-json Patch
@scripts/prebundle Patch
@scripts/update-codesmith Patch
@scripts/update-rsbuild Patch
@scripts/update-rspress Patch
@scripts/vitest-config Patch
tests Patch
integration-asset-prefix Patch
integration-builder-plugins Patch
integration-copy-assets Patch
esbuild-integration Patch
integration-config-async-config-test Patch
integration-basic-local-config Patch
integration-config-function-params Patch
integration-local-config-function Patch
integration-load-config Patch
alias-js-test Patch
alias-ts-test Patch
asset-limit-test Patch
asset-path-test Patch
asset-publicPath-test Patch
svgr-test Patch
auto-extension-commonjs-test Patch
auto-extension-type-module-test Patch
auto-external-test Patch
banner-footer-test Patch
build-type-test Patch
copy-test Patch
decorator-test Patch
global-vars-js-test Patch
global-vars-ts-test Patch
dts-test Patch
esbuild-options-test Patch
external-test Patch
format-cjs-test Patch
format-esm-test Patch
format-iife-test Patch
format-umd-test Patch
entry-test Patch
jsx-test Patch
metafile-test Patch
minify-test Patch
platform-test Patch
redirect-test Patch
data-url-test Patch
browser-false Patch
resolve-false Patch
ndoe-protocol-test Patch
lib1 Patch
lib2 Patch
lib3 Patch
condition-exports-test Patch
js-extensions-test Patch
main-fields-test Patch
shims-test Patch
module-tools-side-effects-test Patch
source-dir-test Patch
sourcemap-test Patch
splitting-test Patch
css-test Patch
less-test Patch
style-test Patch
postcss-test Patch
sass-test Patch
tailwindcss-test Patch
target-test Patch
transform-import Patch
transform-lodash Patch
tsconfig-test Patch
umdGlobals-test Patch
get-module-id-test Patch
dev-test Patch
build-platform-test Patch
build-preset-error-test Patch
build-preset-function-test Patch
build-preset-test Patch
build-preset-string-test Patch
integration-module-tools Patch
plugin-babel Patch
module-hooks-test Patch
plugin-node-polyfill Patch
plugin-polyfill Patch
plugin-vue Patch
runtime Patch
entry Patch
@source-code-build/common Patch
@source-code-build/components Patch
@source-code-build/utils Patch
ssg Patch
ssr Patch
swc-test-decorator-legacy Patch
swc-test-decorator Patch
swc-integration Patch
tailwindcss-integration-test Patch
@e2e/testing-plugin Patch
@e2e/builder-cli-rspack Patch
@e2e/builder-cli-vue Patch
@e2e/builder-cli-webpack Patch
@e2e/webpack-builder-import-antd-v4 Patch
@e2e/webpack-builder-import-antd-v5 Patch
@e2e/webpack-builder-import-arco Patch
@e2e/webpack-builder-test-moment Patch
@e2e/builder-remove-prop-types Patch
@e2e/webpack-builder-source-map Patch
@e2e/builder-vue3 Patch
@e2e/builder-vue2 Patch
@e2e/builder Patch
@e2e/garfish Patch
@modern-js/generator-common Patch
@modern-js/generator-plugin Patch
@modern-js/generator-utils Patch
@modern-js/bff-generator Patch
@modern-js/dependence-generator Patch
@modern-js/entry-generator Patch
@modern-js/generator-generator Patch
@modern-js/module-doc-generator Patch
@modern-js/module-generator Patch
@modern-js/module-test-generator Patch
@modern-js/monorepo-generator Patch
@modern-js/mwa-generator Patch
@modern-js/router-v5-generator Patch
@modern-js/rspack-generator Patch
@modern-js/ssg-generator Patch
@modern-js/storybook-generator Patch
@modern-js/storybook-next-generator Patch
@modern-js/test-generator Patch
@modern-js/upgrade-generator Patch
@modern-js/generator-plugin-plugin Patch
@modern-js/base-generator Patch
@modern-js/changeset-generator Patch
@modern-js/packages-generator Patch
@modern-js/repo-generator Patch
@modern-js/server-generator Patch
@modern-js/tailwindcss-generator Patch
@modern-js/generator-cases Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@fireairforce
Copy link
Member Author

This case fix and work fine under pia side, so i also send a pr for modern.js.

@chenjiahan
Copy link
Member

@clChenLiang please review this PR ❤️

clChenLiang
clChenLiang previously approved these changes Nov 22, 2023
Copy link
Member

@clChenLiang clChenLiang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Had test in local dev

@fireairforce fireairforce enabled auto-merge (squash) November 23, 2023 05:34
@fireairforce
Copy link
Member Author

done~

@fireairforce
Copy link
Member Author

@chenjiahan everything is ok 😬

@chenjiahan
Copy link
Member

@clChenLiang cc

Copy link
Member

@clChenLiang clChenLiang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@fireairforce fireairforce merged commit ecc57b6 into main Nov 24, 2023
8 checks passed
@fireairforce fireairforce deleted the fix-jsx-template-bug branch November 24, 2023 05:55
@caohuilin caohuilin mentioned this pull request Nov 29, 2023
@caohuilin caohuilin mentioned this pull request Dec 6, 2023
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.

None yet

3 participants