The campaign to raise the age for the sale of tobacco products nationally to 21, rather than leaving to the states, where the age varied, was ongoing for many years, was led by anti-smoking and health groups, and was the subject of legislation introduced in Congress. For example, identical bills to raise the minimum age for the sale of tobacco products were introduced in 2017 in the House and Senate. In both chambers, the bills were co-sponsored exclusively by Democrats. The bills were re-introduced in April and May 2019, again with Democrats leading the way. In the House, the bill's primary sponsor was Diana DeGette (C-CO), and had 97 co-sponsors, 76 of whom were Democrats. In the Senate the bill was introduced by Brian Schatz (D-HI) and had 18 co-sponsors, 13 of whom were Democrats.
The substantive crux of the legislation was then incorporated into the $1.4 omnibus budget bill that was enacted in December 2019 and signed by Trump. The legislation directed the FDA to adopt regulations consistent with the legislation's prohibition on the sale of tobacco products to those under 18 and its imposition of a verification requirement for sale of such products to those under 30. It contained no grandfathering clause and while it took effect immediately, it provided that enforcement could only take place after the FDA completed an implementing rulemaking.
In short, the statement in the OP that "Trump just came in and said, "the smoking age nationwide is 21 and no one is grandfathered in." And it happened...right fucking now, no "we'll give you a week to stock up," no nothing" is fiction.
See https://tobacco21.org/